Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能解释一下这段代码在Java中的含义吗?_Java - Fatal编程技术网

有人能解释一下这段代码在Java中的含义吗?

有人能解释一下这段代码在Java中的含义吗?,java,Java,我正在看一个程序,其中有一行我不明白 NoticeBoard notice = (NoticeBoard) o; 那段代码在做什么 该行摘自此处(发布此消息是因为你们可能想了解该行的完整上下文): 它将名为o的可观察对象投射到布告板的实例。最好先检查o是否是NoticeBoard的实例(如果不是,则会得到ClassCastException): 如果可能的话,应该避免类型转换(例如,通过使用Java泛型),但是这里需要遵守观察者接口签名。它将名为o的可观察对象转换为NoticeBoard的实例

我正在看一个程序,其中有一行我不明白

NoticeBoard notice = (NoticeBoard) o;
那段代码在做什么

该行摘自此处(发布此消息是因为你们可能想了解该行的完整上下文):


它将名为o的可观察对象投射到布告板的实例。最好先检查o是否是NoticeBoard的实例(如果不是,则会得到ClassCastException):


如果可能的话,应该避免类型转换(例如,通过使用Java泛型),但是这里需要遵守观察者接口签名。

它将名为o的可观察对象转换为NoticeBoard的实例。最好先检查o是否是NoticeBoard的实例(如果不是,则会得到ClassCastException):


如果可能的话,应该避免类型转换(例如,通过使用Java泛型),但是这里需要遵守观察者接口签名。

您提到的行是一个类型转换<代码>可观察到的o被投射到
布告栏
。 您发布的代码似乎实现了一种观察者可观察的模式(http://en.wikipedia.org/wiki/Observer_pattern). 该项目将收到有关更改的通知(
public void update()
),并传递一个通用的可观察对象,在您的情况下,该对象是一个
通知栏
对象。
要访问布告栏对象的特定方法,必须对其进行强制转换。

您所指的行是强制转换<代码>可观察到的o被投射到
布告栏
。 您发布的代码似乎实现了一种观察者可观察的模式(http://en.wikipedia.org/wiki/Observer_pattern). 该项目将收到有关更改的通知(
public void update()
),并传递一个通用的可观察对象,在您的情况下,该对象是一个
通知栏
对象。
为了能够访问
布告栏
对象的特定方法,必须对其进行强制转换。

非常感谢Daff的解释。非常感谢Daff的解释。
import java.util.Observable;
import java.util.Observer;

class NoticeBoard extends Observable
{
    private String theNotice = "";
    public void setTheNotice( final String notice )
    {
        theNotice = notice;
        setChanged();
        notifyObservers();
    }

    public String getTheNotice()
    {
        return theNotice;
    }
}

class NoticeBoardObserver implements Observer
{
    public void update( Observable o, Object arg )
    {
        NoticeBoard notice = (NoticeBoard) o;
        System.out.println( notice.getTheNotice() );
    }
}

class Main
{
    public static void main( String args[] )
    {
        NoticeBoard floor4 = new NoticeBoard();
        NoticeBoardObserver anObserver = new NoticeBoardObserver();
        floor4.addObserver( anObserver );
        floor4.setTheNotice( "Its summer" );
    }
}
if(o instanceof NoticeBoard) {
    NoticeBoard notice = (NoticeBoard) o;
    System.out.println( notice.getTheNotice() );
}