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

找不到符号变量。。。V扩展类中声明的对象

娄丁雨
2023-03-14

我在学校练习Java,现在有麻烦了。

这是我的图表。java文件:

package graph;

public interface Graph<V>{
    public boolean hasEdge(V one, V two);
    public void addNode(V other);
    public void addEdge(V other);
}

这是我的无向图。java文件:

package graph.undirected;

import graph.*;
import java.util.*;

public class UndirectedGraph<V> implements Graph<V>{

    private HashMap<V,V> neighbourList;
    private TreeMap<V,V> prev;
    private TreeMap<V,Integer> dist;

    public UndirectedGraph(){
        neighbourList = new HashMap<V,V>();
        prev = new TreeMap<V,V>();
        dist = new TreeMap<V,Integer>();
    }

    public boolean hasEdge(V one, V two){
        if(!(this.neighbourList.containsKey(one) && this.neighbourList.containsKey(two))){
            throw new java.util.NoSuchElementException("Nonexistent node.");
        }
        else{
            if( one.neighbourList.containsKey(two) && two.neighbourList.containsKey(one) ){
                return false;
            }
            return true;
        }
    }
    public void addNode(V other){
        if(!(this.neighbourList.containsKey(other))){
            // some code will come here
        }
    }
    public void addEdge(V other){
        if(!(this.neighbourList.containsKey(other))){
            // and some code will come here too
        }
    }
}

我得到了以下错误:

graph\undirected\UndirectedGraph。java:23:错误:找不到符号if(1.neightourlist.containsKey(2)

我被困在这里了。有人能帮我吗?

共有1个答案

公良理
2023-03-14

onetwo属于V类型,在您的示例中,它是一个对象。这种类型的V没有邻里关系列表字段,因此无法编写以下内容,因为它无法编译:

if( one.neighbourList.containsKey(two) && two.neighbourList.containsKey(one) ){
 类似资料:
  • 在 Gradle 领域模型中所有被增强的对象能够拥有自己定义的属性. 这包括,但不仅限于 projects , tasks , 还有 source sets . Project 对象可以添加,读取,更改扩展的属性. 另外,使用 ext 扩展块可以一次添加多个属性. 例子 13.3. 使用扩展属性 build.gradle apply plugin: "java" ext { springV

  • 我是新人。每当我试图构建并运行这段代码时,都会出现这条消息。 下面是 XML 代码: 下面是Java代码: /***重要事项:在下面添加您的包裹。包名称可以在项目的AndroidManifest中找到。xml文件。*这是我们的示例使用的包名称:**packagecom.example.android。justjava;**/ 导入Android。R;导入Android捆绑包;import andr

  • 大约两天前我安装了Android Studio,我还安装了最新版本的Java和JDK1.8(我认为是JavaSE8U101)。我能够编辑代码,我正在遵循Android Studio官方网站上的教程。(此处:https://developer.android.com/training/basics/firstapp/building-ui.html) 然而,在点击运行时,我得到了以下两个错误: >

  • 特定于 Declarative 映射API。 在 1.4 版更改: 绝大多数声明性扩展现在集成到SQLAlchemy ORM中,并且可以从 sqlalchemy.orm 命名空间。请参阅上的文档 声明性映射 对于新文档。有关更改的概述,请参见 声明式现在集成到ORM中,具有新的特性 . Object Name Description AbstractConcreteBase “concrete”声

  • 我正在用Android Studio制作我的第一个测试程序。 该程序有两个活动,您在第一个活动中插入一个文本,按下一个按钮,然后文本在另一个活动上显示。 我下面的YT教程,但我发现两个错误: 找不到符号变量,也找不到解决方案。 我在这里搜索了这么久,但没有找到有效的答案。我试过: > 清洁项目和重建项目。 我没有"导入Android。R". 我用了但它告诉我"未使用的导入语句"。 我已经更改了ID

  • 在项目中,我有几个风格,几个构建类型和几个文件夹 构建组合: 文件夹结构 在每个文件夹中,我都有自定义的来注册这个 有时,但只是有时生成失败,出现“找不到符号”错误: 或与类无关但错误相同 但是下一个构建可能会成功,所以可能的流程是 构建(成功) 代码中的一些更改 构建(错误) 生成重试(成功) 注意事项 这不是同步问题,同步/无效缓存不是答案 免责声明:有些问题看起来像这一个,但它们是不同的,例