Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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模板问题_Java_Generics_Function - Fatal编程技术网

Java模板问题

Java模板问题,java,generics,function,Java,Generics,Function,我实例化了一个对象,如下所示: GraphMatrixDirected<String, Integer> g floyd(g); public void floyd(GraphMatrixDirected<V,E> g) 弗洛伊德的签名如下: GraphMatrixDirected<String, Integer> g floyd(g); public void floyd(GraphMatrixDirected<V,E> g) 试

我实例化了一个对象,如下所示:

GraphMatrixDirected<String, Integer> g
floyd(g);
public void floyd(GraphMatrixDirected<V,E> g) 
弗洛伊德的签名如下:

GraphMatrixDirected<String, Integer> g
floyd(g);
public void floyd(GraphMatrixDirected<V,E> g) 
试一试

请注意,我不赞成这种设计,但这超出了重点。

试试看


请注意,我不赞成这种设计,但这超出了重点。

也许你的意思是
floyd
是一种通用方法

public <V,E> void floyd(GraphMatrixDirected<V,E> g)
public void floyd(图M方向g)
否则,无论什么泛型类型
floyd
都需要将
参数化为

如果
floyd
确实属于泛型类型,但是
floyd
也需要是具有自己类型参数的泛型方法,那么您可能需要选择不同的名称,以免彼此隐藏

工具书类

泛型类型与泛型方法 选择哪条解决方案路线取决于floyd做什么和其他事情。一个重要的问题是:你认为<代码>弗洛依德<代码>是属于泛型类型<代码> > GracMatRXORD (答案可能不是)的方法吗?或者它是一个通用的实用方法,适用于任何<代码>图< /代码>?(答案可能是肯定的)

作为示例和指南,我们还可以了解Java集合框架的结构:

  • -定义类型基本功能的泛型类型
    • 指定
      boolean add(ee)
      E get(int index)
  • -提供
    静态
    实用程序通用方法
    • static void shuffle(列表)

    • static也许你的意思是
      floyd
      是一种通用方法

      public <V,E> void floyd(GraphMatrixDirected<V,E> g)
      
      public void floyd(图M方向g)
      
      否则,无论什么泛型类型
      floyd
      都需要将
      参数化为

      如果
      floyd
      确实属于泛型类型,但是
      floyd
      也需要是具有自己类型参数的泛型方法,那么您可能需要选择不同的名称,以免彼此隐藏

      工具书类

      泛型类型与泛型方法 选择哪条解决方案路线取决于floyd做什么和其他事情。一个重要的问题是:你认为<代码>弗洛依德<代码>是属于泛型类型<代码> > GracMatRXORD (答案可能不是)的方法吗?或者它是一个通用的实用方法,适用于任何<代码>图< /代码>?(答案可能是肯定的)

      作为示例和指南,我们还可以了解Java集合框架的结构:

      • -定义类型基本功能的泛型类型
        • 指定
          boolean add(ee)
          E get(int index)
      • -提供
        静态
        实用程序通用方法
        • static void shuffle(列表)

        • static V和E的定义可能是类范围的,对吗?它们是否包括任何限制,比如必须扩展任何类?是的,它们是类范围的(我认为??)。我怎么知道呢?如果它们是在类声明中定义的,那么它们是类范围的。如果它们是在方法声明中定义的(参见下面的答案),那么它们是方法范围的。好的,那么是的,它们是类范围的,正如我在编辑中所显示的。你能发布AbstractStructure和Graph类声明的代码吗?如果@dimitris andreou不正确,我想问题正是我第一次想的:V和E必须扩展某个类,因此不能是字符串和整数。V和E的定义可能是类范围的,对吗?它们是否包括任何限制,比如必须扩展任何类?是的,它们是类范围的(我认为??)。我怎么知道呢?如果它们是在类声明中定义的,那么它们是类范围的。如果它们是在方法声明中定义的(参见下面的答案),那么它们是方法范围的。好的,那么是的,它们是类范围的,正如我在编辑中所显示的。你能发布AbstractStructure和Graph类声明的代码吗?如果@dimitris andreou不正确,我想问题正是我第一次想的:V和E必须扩展某个类,因此不能是字符串和整数。正确的网址是:@Jim:谢谢更正;注意。一旦我有足够的问题信息,我会自己修改并更新。@Polygene:你现在看到什么新的吗?@00PS:我没有看到你有什么新的东西。您是否阅读了我链接的常见问题解答,特别是关于泛型类型与泛型方法的常见问题解答?无论如何,我将尝试提供更多信息,但除非您提供更多信息和/或自己阅读,否则我只能猜测发生了什么。@00PS:try
          public static void allpairs shortestpath(GraphMatrixDirected g)
          ,暂时尝试快速修复;不过,明天我将对代码进行更详细的评论。有很多内容需要涵盖,例如,对于每个循环,更喜欢原语而不是盒装原语,等等。指向“Angelika Langer的Java通用常见问题解答”的链接有一个输入错误。正确的网址是:@Jim:谢谢更正;注意。一旦我有足够的问题信息,我会自己修改并更新。@Polygene:你现在看到什么新的吗?@00PS:我没有看到你有什么新的东西。您是否阅读了我链接的常见问题解答,特别是关于泛型类型与泛型方法的常见问题解答?无论如何,我将尝试提供更多信息,但除非您提供更多信息和/或自己阅读,否则我只能猜测发生了什么。@00PS:try
          public static void allpairs shortestpath(GraphMatrixDirected g)
          ,暂时尝试快速修复;不过,明天我将对代码进行更详细的评论。有很多内容需要涵盖,例如,对于每个循环,与装箱原语相比,更喜欢原语,例如
          GraphMatrixDirected<String, Integer> g = new GraphMatrixDirected<String, Integer>();
          
          public <V,E> void floyd(GraphMatrixDirected<V,E> g)