根据标题.我想要一个给定类的所有内部类的列表,它可以是一个名称列表或一个类型列表 - 我不感兴趣.这可能吗?我认为可能有一种方法使用反射但是却找不到反射.
非常感谢,托马斯
根据标题.
我有以下代码创建二叉搜索树,但如果我想用用户输入动态创建和更改,如果我不能在haskell中更改变量的值,我该怎么做?!?
find :: (Ord a) => Node a -> a -> Bool
find (Node val left right) s
| s == val = True
| s < val = find left s
| s > val = find right s
find Empty s = False
data Node a = Node a (Node a) (Node a)
| Empty
myTree = Node "m" (Node "a" Empty Empty)
(Node "z" Empty Empty)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
它发生在我的代码中的同一个地方(虽然不是第一次执行该方法)但我无法做出错误的头或尾.(因此它是机器人的代码).
如果有人可以让我知道它是什么类型的问题,那么最感激.我认为它与线程(多线程应用程序)有关,但我真的不知道是什么?!?担心uni项目的截止日期迫在眉睫!
消息:
# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xb70f0ca7, pid=5065, tid=2145643376 # # JRE version: 6.0_15-b03 # Java VM: Java HotSpot(TM) Server VM (14.1-b02 mixed mode linux-x86 ) # Problematic frame: # V [libjvm.so+0x4c9ca7] # # An error report file with more information is saved as: # /home/thomas/workspace/sir13/hs_err_pid5065.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp #
日志:
# # …
说我有这样的事情
public void run(){
Thread behaviourThread = new Thread(abstractBehaviours[i]);
behaviourThread.start();
}
Run Code Online (Sandbox Code Playgroud)
我想等到abstractBehaviours [i] run方法已经完成或运行5000毫秒.我怎么做?behaviourThread.join(5000)似乎没有这样做afaik(我的代码有问题,我已经把它归结为那个).
所有抽象的abstractBehaviour类当然都是Runnable.我不想在每个run方法中实现它,因为它看起来很难看并且有很多不同的行为,我宁愿在调用/执行线程中使用它并且只执行一次.
解决方案?第一次做这样的线程.谢谢!
编辑:因此中断解决方案将是理想的(需要对AbstractBehaviour实现进行最小的更改).但我需要线程停止,如果它已经完成或已经过了5000毫秒,所以类似下面的东西将无法工作,因为线程可能在父线程中的while循环之前完成.合理?任何解决这个问题的方法,我都很乐意从明显启动线程的线程中做到这一点.
long startTime = System.currentTimeMillis();
behaviourThread.start();
while(!System.currentTimeMilis - startTime < 5000);
behaviourThread.interrupt();
try {
behaviourThread.join();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
编辑:nevermind我看到有一个Thread.isAlive()方法,我认为都解决了
可笑的是,以下代码仅在实际在excel窗口中选择了工作表的情况下才有效。我真的很想尽快完成此宏,但似乎无法找出如何选择特定的工作表,以便在excel中打开它?如果有人知道,非常感谢。我必须使用范围等。
sheet.Range(Cells(firstRow, 2).Address(False, False), Cells(lastRow, 50)).Select
With Selection
.Copy
End With
sheet.Range(Cells(firstRow, 3).Address(False, False), Cells(lastRow, 51)).Select
With Selection
.PasteSpecial xlPasteValuesAndNumberFormats
End With
Run Code Online (Sandbox Code Playgroud) 1)这是我的代码,find函数需要将(节点a)和类型(a)作为参数,但我的函数定义似乎不起作用,我做错了什么?我能找到的网上信息很少,所以感谢您的帮助!
2)当我的find函数实现时,我需要访问Node中的特定变量,我该怎么做?!?
-- int for comparisons
find :: (Node a) => Node a -> a -> Bool
find n s
| s == "asd" = True
| s /= "asd" = False
data Node a = Node a (Node a) (Node a)
| Empty
myTree = Node "parent" (Node "left" Empty Empty)
(Node "right" Empty Empty)
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误消息:
Type constructor `Node' used as a class
In the type `(Node a) => Node a -> a -> Bool'
In the type signature …Run Code Online (Sandbox Code Playgroud)