Java类的字段可以不使用泛型而具有多种类型吗?

布赖恩

我有一个类,该类的实例将被序列化。因此,该类实现了Serializable该类具有type字段,当然List也必须是Serializable想象一下,该类看起来像这样:

import java.io.Serializable;
import java.util.List;

public class Report implements Serializable {

    private static final long serialVersionUID = 12345L;

    private List<Record> records = new ArrayList<>();
}

现在我知道ArrayListSerializable,但是我宁愿声明我的字段为某种接口类型。

当我们的SonarQube分析代码时,问题就来了。它抱怨说,该字段也records应该是某种Serializable类型,SonarQube是正确的。

但是由于该字段是一个实现细节(私有成员),因此我不想在类上使用泛型。

这是我的问题:通过自我施加的约束来声明某种接口类型的字段而不使用泛型,是否可以将字段声明为多种(接口)类型?

仅供参考:我知道一个人可以转换为多种类型,但这是完全不同的。

Object o = (List<Serializable> & Serializable) new ArrayList<Serializable>();

以上是完全合法的,尽管没有必要。

布赖恩

简短而令人失望的答案是:不,如果不使用泛型或自定义类,则字段不能同时为多种类型。

我一直在寻找一种声明字段(实际上是任何类型的变量)为交集类型的方法。虽然路口的类型,因为Java 6中引入泛型在Java中存在,在Java 8拉姆达需要的支持,并为我们带来了路口转换。尽管如此,变量的交集类型尚未实现。让我们期盼最好的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有多种类型的泛型类会产生错误

在Java中,可以为类具有泛型类型的变量分配方法引用吗?

PDDL中的变量可以具有多种类型吗?

Java类,具有多种类型的Arraylist

使用具有多种类型的泛型注册存储库 <T, T> c# dotnet core

如何在子类中具有泛型的多种类型

Dart 中泛型类的一个参数有多种类型

如果 Java 泛型类以非泛型方式使用,它会丢失所有字段的泛型信息吗?

如何从 dart flutter 中的单个泛型类返回多种类型的类类型?

具有扩展多种类型的通用参数的静态字段

访问具有多种泛型类型的类中的静态变量

使用泛型时,javac编译器会为每种类型创建不同的类吗?

具有多种类型的类的模板专业化

具有接口类类型的泛型

具有泛型的Scala类型类

Java的:排序泛型类两种类型

具有泛型的类,将其自身引用为Java中该泛型的类型

如何创建泛型类接受多种类型 C#

如何使用已知类型作为参数创建具有泛型的泛型类?

Java中具有多种类型的值的映射

使用具有特定类型的Java泛型

如何使树具有多种类型的节点,并且每个节点在Java中可以具有多个子节点

我可以在F#中表达具有类型约束的泛型类型的递归关系吗?

Java:具有泛型方法的泛型类

您可以使用特定的类型化类来继承泛型类吗?

具有多种类型的Scala变量

我可以告诉TypeScript泛型类型具有构造函数吗?

添加泛型使您可以覆盖具有其他返回类型的方法吗?

具有继承的类类型的泛型列表的类