Java 从Main方法传递参数
这是我的完整代码。我的挑战在最后三行!我无法将参数(int r)发送到findColor(int r)。非常感谢您的帮助。谢谢Java 从Main方法传递参数,java,map,Java,Map,这是我的完整代码。我的挑战在最后三行!我无法将参数(int r)发送到findColor(int r)。非常感谢您的帮助。谢谢 import java.util.*; public class NewClass { private HashMap <Character,HashSet> colorMap ; public NewClass() { colorMap = new HashMap<Character, HashSet>(); } public vo
import java.util.*;
public class NewClass {
private HashMap <Character,HashSet> colorMap ;
public NewClass() {
colorMap = new HashMap<Character, HashSet>();
}
public void addColor(){
HashSet a1 = new HashSet();
a1.add("Yellow");
a1.add("Blue");
a1.add("Pink");
colorMap.put('X', a1);
HashSet a2 = new HashSet();
a2.add("White");
a2.add("Brown");
a2.add("Blue");
a2.add("Black");
colorMap.put('W', a2);
}
public Set<String> findColor(int r)
{
Set<String> colors = new HashSet<String>();
{
for(Character m : colorMap.keySet())
if(r < colorMap.size())
{
Set<String> zone = colorMap.get(m);
System.out.println("Zone " + zone + " has more than " + r + " colors");
}
}
return colors;
}
public static void main(String [] args){
Set<String> colors;
NewClass a = new NewClass();
Scanner input = new Scanner(System.in);
System.out.print("Enter a numbers \n");
int r = input.nextInt();
colors = findColor(r);
a.findColor(r);
}
}
import java.util.*;
公共类新类{
私有HashMap-colorMap;
公共类(){
colorMap=newhashmap();
}
公共void addColor(){
HashSet a1=新的HashSet();
a1.添加(“黄色”);
a1.添加(“蓝色”);
a1.添加(“粉色”);
颜色映射。放置('X',a1);
HashSet a2=新的HashSet();
a2.添加(“白色”);
a2.添加(“棕色”);
a2.添加(“蓝色”);
a2.添加(“黑色”);
颜色映射。放置('W',a2);
}
公共集findColor(int r)
{
Set colors=new HashSet();
{
for(字符m:colorMap.keySet())
if(r
非常感谢您的帮助。谢谢 我能说的一个问题是:
int r = input.nextInt();
//colors = findColor(r);
Set<String> colors = a.findColor(r);
int r=input.nextInt();
//颜色=findColor(r);
设置颜色=a.findColor(r);
删除第二行
findColor(int r
)不是静态方法,因此您不能直接在静态方法内部调用,您需要使用实例引用(上面代码中的第3行)。您尝试执行的操作是从命令行读取。这样做:
最后三行中的第二行是错误的。加上a。在方法调用之前,删除第3行。查看最后3行:
int r = input.nextInt();
colors = findColor(r);
a.findColor(r);
在第2行,您试图从静态方法调用findColor
,但findColor
不是静态的。这是不允许的;必须通过非静态方法所属的特定类的实例调用非静态方法
实际上,在main
函数的作用域中有一个NewClass
的实例,您称之为a
。因此,只需通过该实例调用findColor
:
int r = input.nextInt();
colors = a.findColor(r);
你为什么不能?您是否收到错误消息?它不编译吗?你需要更具体地说明实际的问题是什么,否则你的问题可能会被否决和关闭。谢谢!很有名。然而,它并没有像预期的那样工作!最后颜色的内容是什么?