我正在尝试加载并获取Java中的类的一些信息。在下面的代码中,apdb = {'AP Database': [{'AP Type': '110H',
'Name': 'varagu',
'Public IP': '100.20.300.400',
'Wired MAC Address': 'aa:bb:cc:dd:ee:11'},
{'AP Type': '110H',
'Name': 'thinai',
'Public IP': '100.20.300.500',
'Wired MAC Address': 'aa:bb:cc:dd:ee:22'},
{'AP Type': '110H',
'Name': 'Ragi',
'Public IP': '100.20.300.600',
'Wired MAC Address': 'aa:bb:cc:dd:ee:33'}]}
ap_database = apdb.get('AP Database')
# no need to do this since ap_database is already a list, so we can iterate over it.
# apall = ap_database[0], ap_database[1], ap_database[2]
# ip_list does not change, so we can define it once outside the loop
ip_list = ['100.20.300.400', '100.20.300.500', '100.20.300.700']
# let us add two more variables to hold the fail and success list
success_list = []
fail_list = []
for ap in ap_database:
# ap is a dict, so use ap.get('key') or ap['key'] instead of ap.__getitem__('key')
# note that ap.get('key') returns None if key does not exist, while ap['key'] throws an error.
public = ap.get('Public IP')
name = ap.get('Name')
# check whether public is in ip_list and print appropriate message
if public in ip_list:
print public, name, 'Success'
success_list.append(ap)
else:
print public, name, 'Fail'
fail_list.append(ap)
位于同一个eclipse项目中,[file, file2]
位于android studio项目中。但是以下行得到[file3]
java.lang.ClassNotFoundException
java是否支持加载当前项目中不存在的类?如果可能,我该怎么办?
Class c3 = loader.loadClass("edu.test.activity.GPSActivity");
答案 0 :(得分:1)
使用类/ URLClassLoader
根目录创建bin
,而不包含子目录:
File file = new File("C:/jworkspace/all_java/bin");
File file2 = new File("C:/jworkspace/all_java/bin");
File file3 = new File("C:/android/workspace/AllTest/app/build/intermediates/classes");
注意,URLClassLoader
用于动态加载在运行应用程序之前未知位置的类。在您的情况下,将这些目录添加到Java构建路径可能会起到作用:
在Java代码中,只需要相应的import语句,例如: G。 import edu.test.annotate.Account;
。
答案 1 :(得分:1)
java是否支持加载当前项目中不存在的类?如果可能,我该怎么办?
Java没有“当前项目”的概念,也没有任何项目概念。项目仅存在于Eclipse中,而不是Java中。
为了使你的工作正常,我将在你当前的项目级别引入一个编译时依赖:在Eclipse中右键单击它,然后选择“Properties”,然后选择“Java Build Path”,然后选择“Libraries”,然后“添加类文件夹”,您将在其中添加您的andorid项目的类文件夹,然后单击“应用”和“确定”。