[FindBugs ]Dead store to local variable

第一行还是不要给代码占住了。Dead store to local variable 

 

 

package com.bid.bugs;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import com.bid.vo.Person;

public class ListVoDemo {
	
	public static void testList(){
		
		List<Person> myList = new ArrayList<Person>();
		Class<?> clazz = Person.class;
		Field[] fields = clazz.getDeclaredFields();
		
		for(int i=0; i<10; i++){
			Person person = new Person();
			person.setId(Long.valueOf(i));
			person.setName("xiva"+i);
			myList.add(person);
		}
		for(int i=0; i<myList.size(); i++){
			Person person = new Person();
			person = myList.get(i);
			for(int j=0;j<fields.length;j++){
				String methodName = "get" + fir2Upper(fields[j].getName());
				//根据方法名获取method对象
				try{
					Method getMethod = clazz.getMethod(methodName);
					Object reObject = getMethod.invoke(person,  new Object[]{});
					System.out.println(reObject);
				}catch(Exception e){
					e.printStackTrace();
				}
			}
				
		}
	}

	public static void main(String[] args){
		testList();
	}
	
	/**
	 * 首字母大写
	 * @param property
	 * @return
	 */
	public static String fir2Upper(String property){
		String firChar = property.substring(0, 1);
		String upperChar = firChar.toUpperCase();
		String res = upperChar + property.substring(1);
		return res;
	}
}

 第25行,findBugs居然给出Dead store to local variable这样的提示,开始仔细代码。

 

显然应该这样写,Person person = myList.get(i);之前的写法显然是不正确的,因为在list中本来就存在我们要使用的person对象,而我们在声明引用时也new了一个对象,这个new的对象是我们所不需要的。这样做对内存的消耗很大很不合理。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值