当前位置: 首页 > 知识库问答 >
问题:

如何对T类型使用set()方法

寿和通
2023-03-14
    private <T> T checkBusinessEntityTypeCode(CheckDtKdt checkDtKdt, T kdtCode, T dtCode) {
    if (kdtCode != null && dtCode != null) {
        if (StringUtils.compare(kdtCode..getValue(), dtCode.getValue()) != 0) {
            checkFieldsDtKdtService.save14Graph(checkDtKdt, dtCode.getValue(), kdtCode.getValue());
            dtCode.setValue(kdtCode.getValue());
        }
        if (StringUtils.compare(kdtCode.getCodeListId(), dtCode.getCodeListId()) != 0) {
            checkFieldsDtKdtService.save14Graph(checkDtKdt, dtCode.getCodeListId(), kdtCode.getCodeListId());
            dtCode.setCodeListId(kdtCode.getCodeListId());
        }
    }
}

当然,这段代码不起作用。因为get()和set()方法。我可以用那样的东西吗?

共有1个答案

秦凯定
2023-03-14

您可以使用Java下限泛型和上限泛型,例如,您可以编写一个超级类,在其中放置继承的或抽象的get和set方法:

  private <T extends ApplicationController> T checkBusinessEntityTypeCode(String checkDtKdt, T kdtCode, T dtCode){.... }

ApplicationController是我们的超类(可以是接口),所有“T”类都继承自它,因此来自任何T的所有引用都可以调用get和set方法。

只是小心你需要阅读更多关于超级和下限泛型在使用它之前,使用边界与集合使集合不可变与许多其他技巧...

  ---------------------------------------------------
    private <T extends GvtApplicationController> T checkBusinessEntityTypeCode(String checkDtKdt, T kdtCode, T dtCode) {
    if (kdtCode != null && dtCode != null) {
        kdtCode.getCurrentVersionPath();
    }
    return dtCode;
    }
abstract class Person{
public abstract String getName();
}
class Student extends Person{
@Override
public String getName() {
    return "MyName";
}
}
class GenericsBounder{
public static<T extends Person> String showName(T t){
    return t.getName();
}
}
public class  Bounder{
public static void main(String[] args) {
String s=   GenericsBounder.showName(new Student());
System.out.println(s);
}
}
  |MyName
 类似资料:
  • 我是Java泛型新手。我正在设计DAO层。我将JPA用于Spring。我有一个BaseDAO,它被所有其他DAO类扩展。 我在向此类添加公共列表执行NativeQuery(String queryString, Map参数)时遇到问题。因为如果我必须在扩展BaseDAO的类A中使用此方法,我将不得不为Base Class指定类型参数“E”和“Id”。理想情况下,type参数应该是我们要对其进行db

  • 本文向大家介绍Java泛型 T与T的使用方法详解,包括了Java泛型 T与T的使用方法详解的使用技巧和注意事项,需要的朋友参考一下 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。 在集合框架(Collec

  • 问题内容: 我正在使用泛型方法进行一些测试,我想仅用一个(convertListToArray)转换以下两种方法(convertFloatListToArray和convertShortListToArray): 但是当我尝试使用泛型时,如下所示,我有一些错误: 我可以理解Java关于泛型的局限性,但是我想知道是否有人知道我没有看到任何使用泛型方法的解决方案。 问题答案: 从当前版本(Java 1

  • 我正在尝试为鼠标拖动的事件创建一个EventHandler。我将使用同一个处理程序对多个ImageView执行相同的操作。这就是我所做的。 但显然,我不能使用toFront或setTranslate方法或任何我用于ImageView的方法,因为e.getSource返回一个对象,而这些是对象类型无法使用的ImageView方法。显然,我也不能简单地将其转换为ImageView 我可以简单地使用内部

  • 我在我们公司做项目,我有一个注入对象的问题。让我们考虑一下我有这个实体提供商: 并使用上面的实体提供程序扩展JPAContainer 问题是(我理解),我无法使用类类型定义@Inject对象,因为Inject方法需要一个空构造函数。这里有什么解决方案吗?如何让它发挥作用?现在我得到了一个例外 非常感谢您的回答:)Ondrej

  • 问题内容: 我有一个泛型类。在一种方法中,我想获取类型T的类实例,但是我不能调用。 使用它解决问题的首选方法是什么? 问题答案: 简短的答案是,无法找到Java中泛型类型参数的运行时类型。我建议阅读Java教程中有关类型擦除的章节以获取更多详细信息。 一个流行的解决方案是将type参数的传递给泛型类型的构造函数,例如