Java 避免在不定义类的情况下实例化泛型

Java 避免在不定义类的情况下实例化泛型,java,lombok,Java,Lombok,我定义了这个类 @Data @AllArgsConstructor @EqualsAndHashCode(of = { "id" }) @Builder(toBuilder=true) @Wither @JsonInclude(NON_NULL) public class Hostel<T> { } @数据 @AllArgsConstructor @EqualsAndHashCode(of={“id”}) @生成器(toBuilder=true) @枯萎 @JsonInclude(

我定义了这个类

@Data
@AllArgsConstructor
@EqualsAndHashCode(of = { "id" })
@Builder(toBuilder=true)
@Wither
@JsonInclude(NON_NULL)
public class Hostel<T> {
}
@数据
@AllArgsConstructor
@EqualsAndHashCode(of={“id”})
@生成器(toBuilder=true)
@枯萎
@JsonInclude(非空)
公务舱旅馆{
}
我想知道,如果不这样定义类,是否可以避免实例化

new Hostel<>();
newhotel();
并始终强制实例化,如:

new Hostel<GuestAndHouse>();
newhotel();

您不能禁止此语法变体。比如这个

Hostel h=新的Hostel()

这只是一种简化的语法:

Hostel h=新的Hostel()

但这是同一件事。类型变量
T
仍在此处定义。编译器可以从上下文推断类型,因此您无需将其写下来

这是另一件事,而不是像这样的原始类型:

Hostel h=新的Hostel()


这里没有给类型变量一个实类型。这是应该避免的,但是Java编译器允许它与Java中出现泛型之前编写的代码向后兼容(泛型在1.5中已经引入)。

您是在试图避免菱形运算符,还是只是试图使其成为特定类型范围的泛型参数?