Java代码实际应用中的易错点记录

1 创建对象

在fight方法中想根据接收到的名字创建不同的对象,最后调用方法,其中palnt是一个接口这三种对象已经实现了该接口。但在运行时下面代码是错误的因为我在if中声明了plant其作用范围只在{ }有效,因此后面直接使用是错误的。

public void fight(String name){
   if ("Bean".equals(name)){
     Plant plant =  new Bean();
   }else if ("Ice".equals(name)){
     Plant plant =   new Ice();
    }else {
      Plant plant =  new Wall();
    }
    plant.fight();
}

正确的方法

     Plant plant = null;
     if ("Bean".equals(name)){
         plant =  new Bean();
     }else if ("Ice".equals(name)){
          plant =   new Ice();
      }else {
           plant =  new Wall();
      }
      plant.fight(); 

原文地址:https://www.cnblogs.com/youngao/p/11371423.html

时间: 2024-07-31 00:35:11

Java代码实际应用中的易错点记录的相关文章

java基础中的易错点

包 包在java中类似于c++命名空间 1.1.如何建立多层包? 传送门 注意: 每个包目录下面的文件,开头的格式都是package bag1.bag2.xxx.xxx...; 表示这个文件在哪个包(目录)里面.不能随意修改和删除这个语句,要不然产生不匹配的错误. 在一个包(目录)下新建一个文件夹,那么这个文件夹就会变成子包. 原文地址:https://www.cnblogs.com/yulianggo/p/10426527.html

通过纯Java代码从excle中读取数据(为.xlsx文件)

参考链接: 程序代码: package demo; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; import javax.xml.parsers.DocumentBuilderFactory; im

C# 四舍五入中一处易错点

,你没看错,四舍五入的结果 和我们期待的不太一样 Why?? 进入源码看下,注释中解释的很清楚.. 默认情况下,Math.Round()方法返回的是最接近的整数,这个没问题,问题是当要转换的数据在 两个整数之间时即 0.5时,这个方法默认会返回两个整数中的偶数,并不是我们认为的0.5就进位 如果我们需要实现四舍五入 我们看它的几个重载方法 其中 这个方法的参数MidpointRounding枚举 参数给出了当数据是两个整数之间的数值时,如果取整数 其中第二个,会舍入较小的那个整数,也就是取较大的

定时器中实现数据库表数据移动的功能,Exception in thread "Timer-0" isExist java.lang.NullPointerException定时器中线程报错。

1 package com.shawnway.trade.marketdata.constants; 2 import java.sql.SQLException; 3 import java.util.Calendar; 4 import java.util.Date; 5 import java.util.Timer; 6 import java.util.TimerTask; 7 8 import javax.persistence.EntityManager; 9 import java

字符串,向量和数组中的易错点

while (cin >> word){ cout << endl; } cin>>word; 在输入Ctrl+Z后,后面的输入就都不能接受到数据了.   在string s:中s.empty();是意味着S为空及s=="";而不能将s=NULL;是错的.   在vector中注意基本是函数的调用.   iterator 中的begin和end,

C#中ListView易错的方法

现在有一个ListView(lv1),有2列. ListViewItem lvi = new ListViewItem(); lvi.Text = "语文"; lvi.SubItems.Add("99"); lvi.Items.Add(lvi); lvi = new ListViewItem(); lvi.Text = "数学"; lvi.SubItems.Add("100"); lvi.Items.Add(lvi); 有同学

[笔试题]sizeof系列面试题中的易错之处

sizeof系列笔试题看似简单,其实如果不深入探究,很容易出错,本人就有时败在了这,特写篇博客总结一番,引以为戒. V1.0 32位和64位编译器的区别 测试代码如下: #include "stdafx.h" #include <iostream> using namespace std; int main() { //32和64位编译器区别: 除了*与long随操作系统子长变化而变化外,其他的都固定不变(32位和64相比) //32: sizeof(*)=4 sizeof

java操作数据库的语句一个易错点

我们先来看下面的语句 String sqlString="select * from petMessage where petName='"+pet.getPetName()+"';"; 上面的语句是从指定的信息处选择出所有的信息其中在pet.getPetName()的左右分别加了一个" "这个两个引号起到了连接字符串的功能可是仔细看了在引号的左右还有一个符号  '   就是单引号这个单引号的作用是用来括着pet.getPetName()的信息使

javascript 几个易错点记录

1.清空input标签值得时候,不能用html("")清空,要用val("")清空 2.事件如果绑定多次,触发事件后,回调函数也会执行多次,所有最好把绑定事件的函数单独写,或者必须重复绑定的时候,每次都解绑 3.jquery选择器如果返回的是一个jquery的对象数组,要用each做操作,不然如果直接在数组上操作的话,可能只对数组第一个对象操作,不会发生遍历 4.大小写敏感,比如if 写成了If.toString()写成了tostring(),toUpperCase