我从这行中得到了“无法从静态上下文引用非静态方法”错误:
createStudent(“stu00001”,新日期(631152000000)),“m”,“WB”,新Type\u名称(“Bob”,“Smith”)
你如何正确地形成“日期”?我看了一下API并尝试了不同的方法,但我仍然收到日期错误。
package grade_db;
import bean.Student;
import bean.Type_Name;
import bean.University;
import java.util.Date;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
*
* @author Sam
*/
public class Main {
EntityManager em;
EntityManagerFactory emf;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
EntityManagerFactory emf = Persistence.createEntityManagerFactory("db/grades.odb");
EntityManager em;
em = emf.createEntityManager();
createStudent("stu00001", new Date(631152000000)), "m", "WB", new Type_Name("Bob", "", "Smith"));
em.close();
emf.close();
}
public Student createStudent(String student_id, Date dob, String gender, String nationality, Type_Name name){
Student stu = new Student();
stu.setDob(dob);
stu.setGender(gender);
stu.setName(name);
stu.setNationality(nationality);
stu.setCampus_id("cam00001");
stu.setCourse_id(null);
stu.setStudent_id(student_id);
em.persist(stu);
return stu;
}
}
这是因为CreateStudent是对象的成员方法。Main是静态的,不是对象的一部分。
您需要创建一个新的主对象,或使student为静态对象,才能使其工作。
如果您使create学生静态,它将工作。
public static Student createStudent(String student_id, Date dob, String gender, String nationality, Type_Name name)
制作方法
public static Student createStudent(String student_id, Date dob, String gender, String nationality, Type_Name name){
Student stu = new Student();
静电
问题是您试图从main()
中的静态上下文调用实例方法createStudent()
。如果将您的createStudent()
方法更改为静态,您应该可以:
public static Student createStudent(String student_id, Date dob, String gender, String nationality, Type_Name name) {
// ... And so on
}
编辑:OP指出,在访问变量em和emf时,仅此更改就给了他另一个错误。要解决这个问题,还需要将这些变量设置为静态变量:
static EntityManager em;
static EntityManagerFactory emf;
此时,您的类中的所有内容都是静态的。假设这是一个简单的一次性或示例——我很乐意这样假设,因为这个类被称为Main
——使一切都是静态的就好了。总之,代码如下所示:
package grade_db;
import bean.Student;
import bean.Type_Name;
import bean.University;
import java.util.Date;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
*
* @author Sam
*/
public class Main {
static EntityManager em;
static EntityManagerFactory emf;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
EntityManagerFactory emf = Persistence.createEntityManagerFactory("db/grades.odb");
EntityManager em;
em = emf.createEntityManager();
createStudent("stu00001", new Date(631152000000)), "m", "WB", new Type_Name("Bob", "", "Smith"));
em.close();
emf.close();
}
public static Student createStudent(String student_id, Date dob, String gender, String nationality, Type_Name name){
Student stu = new Student();
stu.setDob(dob);
stu.setGender(gender);
stu.setName(name);
stu.setNationality(nationality);
stu.setCampus_id("cam00001");
stu.setCourse_id(null);
stu.setStudent_id(student_id);
em.persist(stu);
return stu;
}
}
问题内容: 我想一劳永逸地理解这一点。 为此,请原谅下面粘贴的大量代码,但是我不想遗漏任何细节。 我唯一更改的是加载的URL。但这不会导致错误。 我想将我的函数称为“ readPosiitons ”。简单的解决方案,使其静态。真正的解决方案,我不确定。 请帮助我更好地了解如何以正确的方式解决此错误。 谢谢!! 问题答案: 真正的解决方案?不要在方法中放太多东西。那是给菜鸟的。 Java是一种面向对
所以我尝试绑定我的Numpad键,以便在计算器应用程序中使用它们,但当我尝试从主窗口以字符串形式发送keyEvent时。java到我的MainWindowController公共void方法它给了我一个错误“不能从静态上下文引用非静态方法”,即使我的类都不是静态的?以下是主窗口代码: } 这里是MainWindowController文件(看keyPress方法)
我想更改FrameLayout的背景。这是我现在使用的代码: 但出现以下错误: 无法从静态上下文引用非静态方法“setBackground(android.graphics.drawable.drawable)”。 怎么了?
mainactivity.java: xmlReader.java: (如果需要,我也可以为station.java和dbhandler.java添加代码) 我怎样才能绕过这个编程悖论呢?我通常能为这里的任何问题找到答案,但这是我第一次找不到答案。如果你知道我错过的解决方案的链接,请在下面发布。多谢。
这是一个代码的一部分,但当我执行时,我得到了一个错误程序是关于线性规划对不起我的英语,或关于愚蠢的问题 “错误:不能从静态上下文引用非静态方法get_total_profity(String)
问题内容: 不需要任何代码,只需要某种指导。希望保持我的学术诚信;) 我不断收到那个烦人的错误。我需要为每个Room实例调用toString方法。有什么建议?如果可能的话,我希望在2小时内给出答案。 问题答案: 您不应尝试调用Room类,而应调用Room 对象 。在该方法中,请使用for循环遍历房间数组,并打印通过调用数组中保存的每个Room对象返回的String,因为这是您的方法应做的事情。 例