Java 在类中实现嵌套树映射

Java 在类中实现嵌套树映射,java,tree,Java,Tree,我需要在类中创建3个嵌套的树映射。换句话说,使用清晰的命名实现自己的类,这些类在内部使用其他自定义类的映射(再次包含映射) 这就是结构: TreeMap squareRPM=newtreemap() 我创建了这个类,它将是outter树映射: import java.util.TreeMap; public class Check extends InnerCheck { private TreeMap<String, InnerCheck> tm; public

我需要在类中创建3个嵌套的树映射。换句话说,使用清晰的命名实现自己的类,这些类在内部使用其他自定义类的映射(再次包含映射)

这就是结构:

TreeMap squareRPM=newtreemap()

我创建了这个类,它将是outter树映射:

   import java.util.TreeMap;

public class Check extends InnerCheck {
private TreeMap<String, InnerCheck> tm; 

    public Check (){
        tm = new TreeMap<String, InnerCheck>();
    }

    public void addTm1(String coinName, InnerCheck coinValue ){
        tm.put(coinName, coinValue);
    }

    public void getT(String coinName){
        System.out.println("My " + tm.get(coinName));

    }

    public TreeMap<String, InnerCheck> getTm() {
        return tm;
    }

    public void setTm(TreeMap<String, InnerCheck> tm) {
        this.tm = tm;
    }
}
错误是:InnerCheck类型中的addTm2(String,InnerCheck)方法不适用于参数(String,void)


这是我第一次尝试在类中实现嵌套树映射。请提供反馈,这是一个学术项目。提前谢谢。

致电
money1.addTm3(“dinero1”,3)
返回无效(->无)

因此,将其用作
addTm2(字符串coinName,innerCheck coinValue)
的参数无法工作,因为该方法需要一个innerCheck对象作为参数。 如果要以这种方式使用addTm方法,必须使它们返回树对象:

public InnerInnerCheck addTm2(String coinName, InnerInnerCheck coinValue){
    ttm.put(coinName, coinValue);
    return this;
}

调用
money1.addTm3(“dinero1”,3)
返回void(->nothing)

因此,将其用作
addTm2(字符串coinName,innerCheck coinValue)
的参数无法工作,因为该方法需要一个innerCheck对象作为参数。 如果要以这种方式使用addTm方法,必须使它们返回树对象:

public InnerInnerCheck addTm2(String coinName, InnerInnerCheck coinValue){
    ttm.put(coinName, coinValue);
    return this;
}

调用
money1.addTm3(“dinero1”,3)
返回void(->nothing)

因此,将其用作
addTm2(字符串coinName,innerCheck coinValue)
的参数无法工作,因为该方法需要一个innerCheck对象作为参数。 如果要以这种方式使用addTm方法,必须使它们返回树对象:

public InnerInnerCheck addTm2(String coinName, InnerInnerCheck coinValue){
    ttm.put(coinName, coinValue);
    return this;
}

调用
money1.addTm3(“dinero1”,3)
返回void(->nothing)

因此,将其用作
addTm2(字符串coinName,innerCheck coinValue)
的参数无法工作,因为该方法需要一个innerCheck对象作为参数。 如果要以这种方式使用addTm方法,必须使它们返回树对象:

public InnerInnerCheck addTm2(String coinName, InnerInnerCheck coinValue){
    ttm.put(coinName, coinValue);
    return this;
}

错误消息告诉您需要知道的一切,只是知道如何解释它

让我们只关注代码的这一部分:

money1.addTm2("dinero2",(money1.addTm3("dinero1", 3)))
方法
addTm2(String coinName,InnerCheck coinValue)
需要一个字符串和一个InnerCheck作为参数。
“dinero2”
是一个字符串,因此没有问题。 但是,对于第二个参数,您正在传递方法
public void addTm3(String coinName,Integer coinValue)
的结果,该方法“返回”
void
,而不是预期的InnerCheck方法
addTm2
。 这就是你看到的错误产生的原因

将其更改为:

Check money1 = new Check();
money1.addTm3("dinero1", 3);
money1.addTm2("dinero2", money1.getTtm());
money1.addTm1("dinero2", money1.getTttm());

错误消息告诉您需要知道的一切,只是知道如何解释它

让我们只关注代码的这一部分:

money1.addTm2("dinero2",(money1.addTm3("dinero1", 3)))
方法
addTm2(String coinName,InnerCheck coinValue)
需要一个字符串和一个InnerCheck作为参数。
“dinero2”
是一个字符串,因此没有问题。 但是,对于第二个参数,您正在传递方法
public void addTm3(String coinName,Integer coinValue)
的结果,该方法“返回”
void
,而不是预期的InnerCheck方法
addTm2
。 这就是你看到的错误产生的原因

将其更改为:

Check money1 = new Check();
money1.addTm3("dinero1", 3);
money1.addTm2("dinero2", money1.getTtm());
money1.addTm1("dinero2", money1.getTttm());

错误消息告诉您需要知道的一切,只是知道如何解释它

让我们只关注代码的这一部分:

money1.addTm2("dinero2",(money1.addTm3("dinero1", 3)))
方法
addTm2(String coinName,InnerCheck coinValue)
需要一个字符串和一个InnerCheck作为参数。
“dinero2”
是一个字符串,因此没有问题。 但是,对于第二个参数,您正在传递方法
public void addTm3(String coinName,Integer coinValue)
的结果,该方法“返回”
void
,而不是预期的InnerCheck方法
addTm2
。 这就是你看到的错误产生的原因

将其更改为:

Check money1 = new Check();
money1.addTm3("dinero1", 3);
money1.addTm2("dinero2", money1.getTtm());
money1.addTm1("dinero2", money1.getTttm());

错误消息告诉您需要知道的一切,只是知道如何解释它

让我们只关注代码的这一部分:

money1.addTm2("dinero2",(money1.addTm3("dinero1", 3)))
方法
addTm2(String coinName,InnerCheck coinValue)
需要一个字符串和一个InnerCheck作为参数。
“dinero2”
是一个字符串,因此没有问题。 但是,对于第二个参数,您正在传递方法
public void addTm3(String coinName,Integer coinValue)
的结果,该方法“返回”
void
,而不是预期的InnerCheck方法
addTm2
。 这就是你看到的错误产生的原因

将其更改为:

Check money1 = new Check();
money1.addTm3("dinero1", 3);
money1.addTm2("dinero2", money1.getTtm());
money1.addTm1("dinero2", money1.getTttm());