Java:创建对象实例时带括号的类名

Java:创建对象实例时带括号的类名,java,class,object,instance,parentheses,Java,Class,Object,Instance,Parentheses,在java代码中: // Define ActionListener ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { JButton button = **(JButton)actionEvent.getSource();** int red = random.nextInt(255);

在java代码中:

// Define ActionListener

ActionListener actionListener = new ActionListener() {

public void actionPerformed(ActionEvent actionEvent) {

        JButton button = **(JButton)actionEvent.getSource();**
        int red = random.nextInt(255);
        int green = random.nextInt(255);
        int blue = random.nextInt(255);
        button.setBackground(new Color(red, green, blue));

    }
};
突出显示的(介于
**
**
之间)代码是做什么的

我发现这方面的研究非常困难,因为我不知道该用什么搜索词o


希望有人能帮忙。TIA

它将
actionEvent.getSource()
返回的对象强制转换为
JButton


您可以反复阅读一些信息。

这是将
actionEvent.getSource()
返回的对象转换为
JButton


您可以反复阅读一些信息。

它获取动作的源(假定为JButton),并将动作事件的源强制转换为JButton类。

它获取动作的源(假定为JButton),并将动作事件的源强制转换为JButton类。

对象表示用户操作。根据您的代码,此操作已在JButton上执行。此对象有一个getSource()方法,该方法将发回引发事件的对象。但是,由于任何东西都可以发送这样的事件,因此getSource()会发回一个非类型化的对象。您需要将其转换回其原始类型(Jbutton),以便能够使用此源(在此cas中设置其背景)


选中()

ActionEvent对象表示用户操作。根据您的代码,此操作已在JButton上执行。此对象有一个getSource()方法,该方法将发回引发事件的对象。但是,由于任何东西都可以发送这样的事件,因此getSource()会发回一个非类型化的对象。您需要将其转换回其原始类型(Jbutton),以便能够使用此源(在此cas中设置其背景)


Check()

有趣的是
(JButton)
,它被称为cast。如果您完全确定给定的类A(以下称为“foo”)的对象确实是类B的实例,则可以使用强制转换,然后您可以编写

B bar = (B) foo;

然后根据需要使用bar变量。但是请注意,如果foo不是B的真正实例,那么运行时将抛出一个
ClassCastException
。您可能还对阅读关键字感兴趣。

有趣的是
(JButton)
,它被称为cast。如果您完全确定给定的类A(以下称为“foo”)的对象确实是类B的实例,则可以使用强制转换,然后您可以编写

B bar = (B) foo;
然后根据需要使用bar变量。但是请注意,如果foo不是B的真正实例,那么运行时将抛出一个
ClassCastException
。您可能还对阅读关键字感兴趣。

它被称为类“铸造”。getSource()不仅可以返回JButton,还可以返回其他小部件。因此,他们决定“让我们返回对象,因为所有东西都适合它,让开发人员告诉java他期望的东西”,在前面加上(JButton),你是在说“我确定动作事件的源是一个JButton,我想像JButton一样访问它”

它被称为类“casting”。getSource()不仅可以返回JButton,还可以返回其他小部件。因此,他们决定“让我们返回对象,因为所有东西都适合它,让开发人员告诉java他期望的东西”,在前面加上(JButton)你说的是“我确定动作事件的源是一个JButton,我想像JButton一样访问它”

你读过这篇文章了吗?
getSource
上的javadoc表示它返回“事件最初发生的对象”。这似乎很清楚。你不明白的是什么?你读过报纸了吗?
getSource
上的javadoc表示它返回“事件最初发生的对象”。这似乎很清楚。你不明白的是什么?