主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

使用结构体数组创建 Java 电话簿应用程序

在此示例中,您将创建一个 Java® 包,该包调用 MATLAB® 函数来修改结构体数组并实现电话簿应用程序。

文件

MATLAB 函数makephone.m
MATLAB 函数位置matlabroot\toolbox\javabuilder\Examples\PhoneExample\PhoneDemoComp\
Java 代码位置matlabroot\toolbox\javabuilder\Examples\PhoneExample\PhoneDemoJavaApp\getphone.java

过程

  1. 将 MATLAB 附带的 PhoneExample 文件夹复制到您的工作文件夹:

    copyfile(fullfile(matlabroot,'toolbox','javabuilder','Examples','PhoneExample'),'PhoneExample')

    在 MATLAB 命令提示符下,导航到工作文件夹中的新 PhoneExample\PhoneDemoComp 子文件夹。

  2. 检查 makephone.m 函数。

    function book = makephone(friends)
    book = friends;
    for i = 1:numel(friends)
        numberStr = num2str(book(i).phone);
        book(i).external = ['(508) 555-' numberStr];
    end

    该函数将结构体数组作为输入,对其进行修改,并将修改后的数组作为输出。

  3. 使用以下信息构建 Java 包,可通过 Java 包编译器应用或 compiler.build.javaPackage 进行操作:

    字段
    Java 包名称phonebookdemo
    类名phonebook
    要编译的文件makephone.m

    例如,如果您使用的是 compiler.build.javaPackage,请输入:

    buildResults = compiler.build.javaPackage('makephone.m', ...
    'PackageName','phonebookdemo', ...
    'ClassName','phonebook');

    有关详细信息,请参阅生成 Java 包并编译 Java 应用程序中的说明。

  4. 为访问 MATLAB 函数的应用程序编写源代码。

    此示例的示例应用程序位于 PhoneExample\PhoneDemoJavaApp\getphone.java 中。

     getphone.java

    程序执行以下操作:

    • 创建一个结构体数组,使用 MWStructArray 来表示示例电话簿数据。

    • 将绘图仪类实例化为 thePhonebook 对象:

      thePhonebook = new phonebook();

    • 调用 makephone 方法通过添加附加字段来创建结构的修改副本:

      result = thePhonebook.makephone(1, friends);

    • 使用 try-catch 模块来捕获并处理任何异常。

  5. 在 MATLAB 中,导航到 PhoneExample\PhoneDemoJavaApp 文件夹。

  6. 将生成的 phonebookdemo.jar 包复制到此文件夹中。

    例如,如果您使用了 compiler.build.javaPackage,请输入:

    copyfile(fullfile('..','PhoneDemoComp','phonebookdemojavaPackage','phonebookdemo.jar'))
  7. 在命令提示符窗口中,cdPhoneDemoJavaApp 文件夹。

  8. 使用 getphone 编译 javac 应用程序。

    • 在 Windows® 上,键入:

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\phonebookdemo.jar getphone.java
    • 在 UNIX® 上,键入:

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./phonebookdemo.jar getphone.java

    matlabroot 替换为 MATLAB 或 MATLAB Runtime 安装文件夹的路径。例如,在 Linux® 上,路径可能为 /usr/local/MATLAB/R2025a

  9. 运行 getphone 应用程序。

    • 在 Windows 上,键入:

      java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\phonebookdemo.jar getphone
    • 在 UNIX 上,键入:

      java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./phonebookdemo.jar getphone

      注意

      如果您在 Mac 64 位平台上运行该应用程序,则必须在 Java 命令中添加 -d64 标志。

    getphone 程序显示以下输出:

    Friends: 
    2x2 struct array with fields:
        name
        phone
    Result: 
    2x2 struct array with fields:
        name
        phone
        external
    Result record 2:
    Mary Smith
    3912
    (508) 555-3912
    
    Entire structure:
    Number of Elements: 4
    Dimensions: 2-by-2
    Number of Fields: 3
    Standard MATLAB view:
    2x2 struct array with fields:
        name
        phone
        external
    Walking structure:
    Element 1
       name: Jordan Robert
       phone: 3386
       external: (508) 555-3386
    Element 2
       name: Mary Smith
       phone: 3912
       external: (508) 555-3912
    Element 3
       name: Stacy Flora
       phone: 3238
       external: (508) 555-3238
    Element 4
       name: Harry Alpert
       phone: 3077
       external: (508) 555-3077
    

另请参阅

|

主题