作者eicsarch (Eics)
看板java
标题Re: [问题] 从文字档读取演算法
时间Thu Aug 20 00:38:59 2009
我用CLASSLOADER将指定路径的*.class档(*表表档名)
可是遭遇到一个问题
URL url1 = new URL("file:/D:/workspace/"); //CLASS档所在路径
URLClassLoader urlClassLoader1 = new URLClassLoader(new URL[] {url1});
Class cls =urlClassLoader1.loadClass("ttt"); //CLASS名称
Object bbb= cls.newInstance(); //将载入的CLASS newInstance()
以上这一段主要在载入class档,而我的ttt.class内容是
public class ttt
{
public static void main(String[] args)
{
}
public void sort(int seq[])
{
System.out.println(seq[0]);
}
ttt()
{
System.out.println("ttt无参数");
}
}
里面只有一个建构子和一个方法,可是建构子ttt()却会让我
Object bbb= cls.newInstance() 这一句无法过newInstance
,但是当我把建构子砍掉以後,就又可以过了,我以为是我忘记加null
所以就把cls.newInstance(null),没想出现不适用引数null的讯息
我查了一下,通常是把建构子和方法分开放在不同class里面
就是有建构子就没有方法,有方法就没有建构子
再分别用getconstructor抓建构子和invoke抓方法
是我这样放在一起是错的吗?本来可以过的
放在一起却不能用cls.newInstance()了,这样除了分开放没有别的办法了吗?
一直出现错误讯息
java.lang.IllegalAccessException: Class constructor1 can not access a
member of class ttt with modifiers ""
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: eicsarch 来自: 118.170.2.4 (08/20 01:01)
1F:→ kanandg1:会不会是因为建构子是default?试试public? 08/20 01:58
2F:→ eicsarch:感谢!!!加上public以後果然成功了!! 08/20 07:22
3F:→ eicsarch:不过为什麽不加public不能用??原理是什麽? 08/20 07:34
4F:推 PsMonkey:就是基本的权限阿.... 08/20 09:09
5F:推 Schelfaniel:Java 规定就是这样,不想写 public 就用 Scala 吧 08/20 11:36
6F:推 PsMonkey:楼上拉票拉很大.... [误] 08/20 11:46
7F:→ Schelfaniel:我是觉得语言本身就应该提供一些能省略的机制的, 像是 08/20 11:57
8F:→ Schelfaniel:美国真多加拿大人 其实是 (在)美国(有)真多加拿大人 08/20 11:59
9F:推 PsMonkey:嗯.. 持反对意见 XD 08/20 13:23
10F:→ sbrhsieh:就这个问题而言,五楼提出的建议是本末倒置。 08/20 16:06
11F:推 puzi:楼上认真了....XD 08/20 21:33
12F:→ Schelfaniel:本末倒置嘛?如果我和你功力一样,少打个public就比较快 08/21 09:26
13F:推 qrtt1:写程式又不是打字比赛,快慢意义不大。 08/21 09:29
14F:→ Schelfaniel:好吧,反过来说好了 Java 的 default 出现率很低... 08/21 09:40
15F:→ Schelfaniel:如果把 default 和 public 反过来 (default 要多打字) 08/21 09:42
16F:→ Schelfaniel:这样整体程式一口气可以少掉一堆 public 看起来很简洁 08/21 09:43
17F:→ Schelfaniel:至少我觉得让程式简洁一点也没什咩不对,当然你可以说 08/21 09:44
18F:→ Schelfaniel:"Java这样比较习惯"或是"让新手知道要用public"之类的 08/21 09:46
19F:→ Schelfaniel:如果要用Java,Java的规定就是要遵守,少打就是不行的 08/21 09:49
20F:推 PsMonkey:请不要推文成章.... 08/21 11:20