我正在阅读反编译的Java软件的源代码。它被混淆了,但我认为它也应该遵守Java的规则。我希望这个类NK$1
被称为this.b.a.q()
的方法,但我没有找到关于b
成员的任何信息,即使对于成员及其q()
方法。为什么代码是这样的?在反编译混淆匿名内部类中找不到“this.b.a.q()”方法
嗨,根据你的回答,我发现在外部类b
,NK
。但是我仍然找不到a
,因为b
是JButton
对象,我不觉得a
在JButton
有吗?我在下面添加了外部类代码。
1)下面是整个文件NK$1.class
(就像NK$1.java
)
package com.xxx;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class NK$1
implements ActionListener
{
NK$1(NK paramNK, NI paramNI) {}
public void actionPerformed(ActionEvent paramActionEvent)
{
this.b.a.q(); ------------------> where is the b?
}
}
2)下面是NK.class
(外类)
package com.xxx;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JPanel;
class NK
extends JPanel
{
private JButton b; <-------------- this is b, but where is the a in "this.b.a.q()"?
NK(NI paramNI)
{
double[][] arrayOfDouble = { { 5.0D, -1.0D, -2.0D, 10.0D, -2.0D, 10.0D, -2.0D, 10.0D, -2.0D, 10.0D, -2.0D, 5.0D }, { 5.0D, -2.0D, 5.0D } };
ayI localayI = new ayI(arrayOfDouble);
setLayout(localayI);
JButton localJButton = new JButton("Load");
this.b = localJButton;
add(localJButton, "8,1,c,c");
localJButton.setMnemonic(76);
Icon localIcon = Fi.b();
if (localIcon != null) {
localJButton.setIcon(localIcon);
}
localJButton.addActionListener(new NK.1(this, paramNI)); <---------Here is the inner class
localJButton = FJ.d();
localJButton.setMnemonic(72);
add(localJButton, "1,1,l,c");
localJButton.addActionListener(new NK.2(this, paramNI));
if ((Gr.z() != null) && (!FI.ao()))
{
paramNI.h = new JButton("Download updates");
paramNI.h.setMnemonic(68);
paramNI.i = new NJ(paramNI);
add(paramNI.h, "2,1,c,c");
localIcon = Fi.c("SUITE_DOWNLOAD");
if (localIcon != null) {
paramNI.h.setIcon(localIcon);
}
paramNI.h.addActionListener(new NK.3(this, paramNI));
}
else
{
add(localJButton, "2,1,c,c");
}
localJButton = new JButton("Refresh");
add(localJButton, "6,1,c,c");
localIcon = Fi.c("REFRESH");
if (localIcon != null) {
localJButton.setIcon(localIcon);
}
localJButton.addActionListener(new NK.4(this, paramNI));
localJButton = new JButton("Close");
localJButton.setMnemonic(67);
add(localJButton, "10,1,c,c");
localIcon = Fi.d();
if (localIcon != null) {
localJButton.setIcon(localIcon);
}
localJButton.addActionListener(new NK.5(this, paramNI));
}
public JButton a()
{
return this.b;
}
}
你正在使用哪一个反编译器?他们并不都能很好地处理内部的课程。 –
你是对的,JD-GUI存在缺陷 – hsluoyz