我无法使用构造函数运行我的java类。看起来我的构造函数有问题,但我找不到错误。 这是代码:
using System.Diagnostics;
using System.Text;
using System.Windows.Input;
using BasicMVVMQuickstart_Desktop.Model;
using Microsoft.Practices.Prism.Commands;
using Microsoft.Practices.Prism.Mvvm;
namespace BasicMVVMQuickstart_Desktop.ViewModels
{
public class MainWindowViewModel : BindableBase
{
public MainWindowViewModel()
{
this.SubmitCommand = new DelegateCommand<object>(this.OnSubmit);
this.QuestionnaireViewModel = new QuestionnaireViewModel();
this.ResetCommand = new DelegateCommand(this.OnReset);
}
public ICommand SubmitCommand { get; private set; }
public ICommand ResetCommand { get; private set; }
public QuestionnaireViewModel QuestionnaireViewModel { get; set; }
private void OnSubmit(object obj)
{
Debug.WriteLine(this.BuildResultString());
this.QuestionnaireViewModel.Questionnaire.Age = 32;
}
private void OnReset()
{
this.QuestionnaireViewModel.Questionnaire = new Questionnaire();
}
private string BuildResultString()
{
StringBuilder builder = new StringBuilder();
builder.Append("Name: ");
builder.Append(this.QuestionnaireViewModel.Questionnaire.Name);
builder.Append("\nAge: ");
builder.Append(this.QuestionnaireViewModel.Questionnaire.Age);
builder.Append("\nQuestion 1: ");
builder.Append(this.QuestionnaireViewModel.Questionnaire.Quest);
builder.Append("\nQuestion 2: ");
builder.Append(this.QuestionnaireViewModel.Questionnaire.FavoriteColor);
return builder.ToString();
}
}
}
错误是:
import java.util.Scanner;
public class Item
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
ItemM myItem = new ItemM();
System.out.println("Enter item ID");
String itemID = input.nextLine();
myItem.setItemID(itemID);
System.out.printf("The Item ID is %s%n", myItem.getItemID());
}
public class ItemM
{
private String itemID;
public ItemM(String itemID)
{
this.itemID = itemID;
}
public void setItemID(String itemID)
{
this.itemID = itemID;
}
public String getItemID()
{
return itemID;
}
}
}
我也尝试过使用:
ItemM myItem = new ItemM();
我需要它在一个文件中。
答案 0 :(得分:2)
static
首先,您的ItemM
需要一个String
参数。您可以使内部class
静态允许static main
方法在没有Item
实例的情况下使用它。
public static class ItemM
和然后您可以使用
ItemM myItem = new ItemM("a");
ItemM myItem = new Item().new ItemM("a");
JLS-8.1.3. Inner Classes and Enclosing Instances说(部分)
内部类是一个未显式或隐式声明
static
的嵌套类。