java-Java在方法中可以任意构造类吗?

问题描述

Java在方法中可以任意构造类吗?

protected void do_button_actionPerformed(final ActionEvent e) {
new Thread() { // 开辟一个新的线程执行费时业务
public void run() {
for (int i = 0; i < 10; i++) { // 循环添加10个列表选项
Runnable runnable = new Runnable() { // 创建Runnable对象
public void run() { // 在run方法中操作Swing界面
listData.add("选项" + listData.size());
list.setListData(listData);
}
};
EventQueue.invokeLater(runnable); // 在事件队列中执行Runnable对象
try {
Thread.sleep(1000); // 阻塞UI线程1秒
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
}.start(); // 启动业务线程
}

新人请教,这段代码里有个new Thread();按照平时我们得让类继承Thread或者成为Runnable的借口才能创建线程类并重写run方法     是不是只要在方法里面就可以随意创建了?顺便问下try{}catch{}的捕获方法向上跳出是什么意思,就是显示到esclipse下面那里吗?那有没有捕获有什么差别呢?小白提问麻烦各位大大了

解决方案

这个本身就是生成类对象的方法,只不过我们平时都是这样的A a = new A();这个对象的名字叫做a,而你使用的直接new Thread()这是匿名内部类的使用,是没有名字的(也就是没有引用)然后后面还有.start(),这是直接使用生成的对象的方法,建议你去看一下匿名内部类的使用. 使用了try{}catch(){},这样就是发生了异常,程序也不会崩溃,而会继续执行catch(){}之后的内容,如果你不使用的话,当程序发生一次,程序就会崩溃

解决方案二:

动态构造 Java 类的一种方法: ClassLoader 的设计 (4)
动态构造 Java 类的一种方法: javassist (3)
动态构造 Java 类的一种方法: javassist (1)

解决方案三:

新人请教,这段代码里有个new Thread();按照平时我们得让类继承Thread或者成为Runnable的借口才能创建线程类并重写run方法 是不是只要在方法里面就可以随意创建了

这是一个简写

new Thread() { }.start(); // 启动业务线程

相当于以下
MyThread mt=new MyThread();

mt.start()

解决方案四:

诺一生讲的很好了,关于你说的向上跳出不是很明白是什么意思。

解决方案五:

诺一生讲的很好,但是一般没有在方法内构造类这一说法,在类中构造匿名类倒是有

解决方案六:

这个本身就是生成类对象的方法,只不过我们平时都是这样的A a = new A();这个对象的名字叫做a,而你使用的直接new Thread()这是匿名内部类的使用,是没有名字的(也就是没有引用)然后后面还有.start(),这是直接使用生成的对象的方法,建议你去看一下匿名内部类的使用. 使用了try{}catch(){},这样就是发生了异常,程序也不会崩溃,而会继续执行catch(){}之后的内容,如果你不使用的话,当程序发生一次,程序就会崩溃

时间: 2024-10-01 09:37:45

java-Java在方法中可以任意构造类吗?的相关文章

java,main方法中可以运行,为啥被调用时不起作用,

问题描述 java,main方法中可以运行,为啥被调用时不起作用, public class Test { // public static void main(String[] args){ public static void sendMail(){ //这个类主要是设置邮件 MailSenderInfo mailInfo = new MailSenderInfo(); .............. 之前用main方法运行时,(就是鼠标右键运行那种),是可以的, 为啥把方法换成sendMai

Java 从Jar文件中动态加载类

由于开发的需要,需要根据配置动态加载类,所以简单测试了一下JAVA动态加载类 定义接口 package loader; public interface HelloIface {     public String hello();          public String sayHi(String name); } 实现接口 在其他插件类实现此接口,并导出为jar,如D:/tmp/test.jar package loader; public class HelloImpl impleme

java 内部类-java方法中定义的局部内部类问题

问题描述 java方法中定义的局部内部类问题 在方法中定义的内部类为什么只能访问方法中的final类型局部变量? package com.study; interface OutInterface2{ //定义一个接口 } class OuterClass3 { public OutInterface2 doit(final String x){//doit方法参数为final类型 //在doit()方法中定义一个内部类 class InnerClass2 implements OutInter

java-[Java]关于重载方法中的可变参数列表

问题描述 [Java]关于重载方法中的可变参数列表 <Thinking in Java>第105页有一句话不理解 如何理解你应该总是只在重载方法的一个版本上使用可变参数列表,或者压根就不是用它 解决方案 就是当重载一个方法时,选择其中的一个重载使用可变参数,其他的避免使用,否则编译的时候容易出问题.具体的参看http://www.cnblogs.com/lanxuezaipiao/p/3190673.html 解决方案二: 这个道理很简单,比如说你有foo(int x int ... args

java类的问题-用java 写一个方法,能够判断任意整数是否是素数

问题描述 用java 写一个方法,能够判断任意整数是否是素数 用java代码写一个方法,能够判断任意整数是否是素数......... 解决方案 public class Num{ public static void main(String args[]){ int m; boolean tag=true; System.out.print("Please enter a num:"); try{ m=(int)System.in.read(); for(int i=m-1;i>

java识别一篇文章中某单词出现个数的方法_java

本文实例讲述了java识别一篇文章中某单词出现个数的方法.分享给大家供大家参考.具体如下: 1. java代码: import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.StringTokenizer; import java.util.regex.Matche

从Java的jar文件中读取数据的方法

  这篇文章主要介绍了从Java的jar文件中读取数据的方法,实例分析了java档案文件的相关操作技巧,需要的朋友可以参考下 本文实例讲述了从Java的jar文件中读取数据的方法.分享给大家供大家参考.具体如下: Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR 文件格式支持压缩.身份验证和版本,以及许多其它特性. 从 JAR 文件中得到它所包含

浅谈java 执行jar包中的main方法_java

浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&

java中同一个方法可以被几个类或者被几个对象共享

问题描述 java中同一个方法可以被几个类或者被几个对象共享 java中同一个方法可以被几个类或者被几个对象共享java中同一个方法可以被几个类或者被几个对象共享 解决方案 方法本质上是字节码序列,底层是指令集合.方法是通过对象调用的,对象是存储在堆中的,是所有线程共享的.方法是类型信息,不存在共享这个说法. 解决方案二: java 中的方法都是在类中的,而对于你说的方法可以被几个类或者几个对象共享,这个问题问的没有多大意义,方法属于类的方法,不会被共享,可以被子类复写和调用. 解决方案三: j