考虑一下:
public abstract class AbstractHibernateDao< T extends Serializable > {
private T clazz;
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
public abstract class AbstractHibernateDao< T extends Serializable > {
private Class< T > clazz;
}
Run Code Online (Sandbox Code Playgroud)
我能够编译两者 - 所以我肯定在这里做了一些基本的检查.
Java专家,我真诚地感谢任何见解!
我的包中有一个带有受保护方法的抽象类。我在同一个包中还有这个类的子类。现在,当我尝试从包外部的类实例化子类,并在子类实例上调用受保护的方法时,Eclipse 抱怨受保护的方法不可见。
我认为,受保护的方法将对所有子类可见 - 包内或包外 - 只要类可见性不限制它 - 在这种情况下,父类和子类都是公共的。我缺少什么?提前致谢!
package X;
public abstract class Transformation {
protected OutputSet genOutputSet (List list) {
..
}
}
Run Code Online (Sandbox Code Playgroud)
package X;
public class LookupTransformation extends Transformation {
}
Run Code Online (Sandbox Code Playgroud)
package Y;
import X.*;
public class Test {
public static void main(String[] args) {
List<field> fld_list = new ArrayList();
..
LookupTransformation lkpCDC = new LookupTransformation();
OutputSet o = lkpCDC.genOutputSet(fld_list); // Eclipse errors out here saying genOutputSet from the Type Transformation is not visible. WWWWWWWWHHHHHAAAATTTTTT????
} …Run Code Online (Sandbox Code Playgroud) 我正在阅读'有效的java' - 它建议在类有几个可选的构造参数时使用构建器模式.合理的是它有优势 -
'伸缩模式' - 它基本上为一个构造函数提供了需求模式,另一个带有必需的+ 1个可选项,另一个带有'required + 2 optional'等等 - 作者认为当可选参数变得难以读取和写入时失去控制
'Javabeans'模式 - 它使用一个无参数构造函数,然后为每个参数运行一个setter - 这里的缺点是线程安全 - 因为该对象经过了几个方法 - 并且可能在构造时可访问,导致远离的部分出现意外行为代码
推荐的模式 - 构建器 - 在类中使用带有可选参数的"静态"内部类成员 - 客户端在"java beans"样式构造中构建"构建器",然后调用基本上使用构建器成员进行设置的类构造函数它的领域
唷!
我的问题:鉴于构建器是静态成员,应用程序中的其他线程是否也无法同时访问并可能更改构建器属性?导致意外行为?
没有线程编程的经验所以请原谅我这是一个愚蠢的问题