public class SimpleEnumUse
{
Spiciness spiciness;
public SimpleEnumUse(Spiciness spiciness)
{
this.spiciness = spiciness;
}}
今天遇到个很奇怪的现象,Spiciness spiciness;这样写不会警告!
但是要是改成 private Spiciness spiciness; 就是报警告“is not used”。
一时好奇,问问大家这个是怎么回事? 谢谢!!
调试欢乐多
可能与eclipse的检查机制有关,要不就是类的访问限制有关
如果你什么也不写spiciness就是default的访问控制权限,而如果写了private 只有在本类当中可以使用。
在private的使用范围限制在本类,编译器很容易找本类到底用了没有,发现没有用,就能够很容易判定,因此可以产生警告。
而default权限是包访问权限,编译器没有那么“能干”,扫描包,所以在default权限下就没有warning
如果你非要使用它,不如先了解一下单例模式。单例模式是最简单的设计模式,它的构造函数私有
如果你有一个类,例如工具类,他的方法全部是static的,那么你就可以把这个类的构造声明成private,不让人构造。
或者你不希望别人随便的去构造一个实例,例如你的系统对这个类的实例有数量的严格控制,例如连接池,或者打开某种文件的个数,你只允许有10个这样的对象,所以你不能让人随便去new对象,你就要把构造声明为private,然后通过这个类本身的一个静态函数来生产实例或者重用实例。
{
private Spiciness spiciness;
public SimpleEnumUse(Spiciness spiciness)
{
this.spiciness = spiciness;
}
}class Spiciness{
}