Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么android中允许使用更具体的参数类型进行重写?_Java_Android_Generics - Fatal编程技术网

Java 为什么android中允许使用更具体的参数类型进行重写?

Java 为什么android中允许使用更具体的参数类型进行重写?,java,android,generics,Java,Android,Generics,我在查看android示例时,在代码中找到了一个我不理解的地方。这是代码(摘自) : 我已经用JDGUI反编译了OnItemViewClickedListener类,声明如下 package android.support.v17.leanback.widget; public abstract interface BaseOnItemViewClickedListener<T> { public abstract void onItemClicked(Presenter.Vi

我在查看android示例时,在代码中找到了一个我不理解的地方。这是代码(摘自) :

我已经用JDGUI反编译了
OnItemViewClickedListener
类,声明如下

package android.support.v17.leanback.widget;

public abstract interface BaseOnItemViewClickedListener<T>
{
  public abstract void onItemClicked(Presenter.ViewHolder paramViewHolder, Object paramObject, RowPresenter.ViewHolder paramViewHolder1, T paramT);
}
尝试编译会导致几个错误:
B不是抽象的,并且不会覆盖
中的抽象方法dodo(整数、对象、浮点、对象),并且
方法不会覆盖或实现超类型中的方法


问题是:
RosterFragment
代码可编译的原因是什么?

很容易看出
OnItemViewClickedListener
实现了
BaseOnItemViewClickedListener
而不是任何常规的
BaseOnItemViewClickedListener

定义代码为

在Doc格式中,其

因此,很明显,最后一个参数的
T
已解析为


希望有帮助

很容易看出,
OnItemViewClickedListener
实现了
BaseOnItemViewClickedListener
而不是任何常规的
BaseOnItemViewClickedListener

定义代码为

在Doc格式中,其

因此,很明显,最后一个参数的
T
已解析为


希望有帮助

您的类实现了MViewClickedListener。您反编译了BaseOnItemViewClickedListener。为什么不直接阅读(并指向)类的javadoc呢。如果它没有,你也不应该使用这个类。这可能是因为你反编译的那个类被混淆了?所以类名是一个字母,我反编译了这个类,因为我认为javadoc可以不同于真正的类,这就解释了这个问题。但在这种情况下,javadoc也没关系。而且没有一个类是不模糊的。您的类实现了OnItemViewClickedListener。您反编译了BaseOnItemViewClickedListener。为什么不直接阅读(并指向)类的javadoc呢。如果它没有,你也不应该使用这个类。这可能是因为你反编译的那个类被混淆了?所以类名是一个字母,我反编译了这个类,因为我认为javadoc可以不同于真正的类,这就解释了这个问题。但在这种情况下,javadoc也没关系。没有一个类是不模糊的
package android.support.v17.leanback.widget;

public abstract interface BaseOnItemViewClickedListener<T>
{
  public abstract void onItemClicked(Presenter.ViewHolder paramViewHolder, Object paramObject, RowPresenter.ViewHolder paramViewHolder1, T paramT);
}
interface A<T>{
    public void dodo(Integer a, Object b, Float c, T t);
}

class B implements A{
    @Override
    public void dodo(Integer a, Object b, Float c, String t) {
    }
}