gpt4 book ai didi

java - 采用对象及其任何父类(super class)的方法

转载 作者:行者123 更新时间:2023-12-02 08:57:15 25 4
gpt4 key购买 nike

实现。

一个方法signal应该采取

  1. 任何对象 N
  2. 任何对象的父类(super class) Class<?super N>
<N>void
signal(N n, Class<?super N> n_super)
{
/*...*/
}

打电话应该没问题

Object object=new Object();
signal(object, object.getClass());

Object object 的父类(super class)型。但调用它会产生警告。用 IDE 的话来说:

IntelliJ(Android Studio)

Wrong 2nd argument type. Found Class<? extends Object>, required: Class<? super Object>

eclipse

The method signal(N, Class<? super N>) is not applicable for the arguments (Object, Class<? extends Object>)

问题。

  1. 我尝试的方式能否实现目标,如果可以,
  2. 如何消除警告

最佳答案

将我的评论转化为答案。

我很快就能想到的两种方法:

<小时/>

直接在此处使用Object.classsignal(object, Object.class); 在我的 java 版本上编译正常,没有警告。

<小时/>

将方法签名更改为:

<N, M extends N> void signal(N n, Class<? super M> n_super)

这应该让您可以按照现有的方式调用它(如signal(object, object.getClass());)。

关于java - 采用对象及其任何父类(super class)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60418798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com