java中私有属性可以通过反射获取,那设置成私有是不是没多大意思
publicclassTestBean{privateStringname="abc";}publicclassPrivateTest{publicstaticvoidm...
public class TestBean
{
private String name = "abc";
}
public class PrivateTest
{
public static void main( String[] args ) throws IllegalArgumentException, IllegalAccessException
{
TestBean tb = new TestBean();
Field[] f = TestBean.class.getDeclaredFields();
for(int i=0;i<f.length;i++){
f[i].setAccessible( true );
System.out.println(f[i].get( tb ));
}
}
}
私有变量的值是可以访问到的 输出为abc 展开
{
private String name = "abc";
}
public class PrivateTest
{
public static void main( String[] args ) throws IllegalArgumentException, IllegalAccessException
{
TestBean tb = new TestBean();
Field[] f = TestBean.class.getDeclaredFields();
for(int i=0;i<f.length;i++){
f[i].setAccessible( true );
System.out.println(f[i].get( tb ));
}
}
}
私有变量的值是可以访问到的 输出为abc 展开
5个回答
展开全部
你理解偏了。外界不能直接访问。但可以过调用方法来获取私有变量的值。
只不过安全性高了而已
只不过安全性高了而已
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过反射,只能查到这个某个类有哪些属性,哪些方法,是查看的这个类的类型,并不是查看的一个实例,所以是查不到私有变量的值得。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是得不到他们的值的,只能看一下有什么属性。还是起到了,保护,变量的做用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要具体问题具体分析,
为了较好的封装,默认为private,也要优先考虑用private。如果需要隐藏内部逻辑,一定是private
如果是比较简单的,可以用public,譬如某一个bean得id之类的;或者是一些可以共享的譬如static得等等。。。
为了较好的封装,默认为private,也要优先考虑用private。如果需要隐藏内部逻辑,一定是private
如果是比较简单的,可以用public,譬如某一个bean得id之类的;或者是一些可以共享的譬如static得等等。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询