gpt4 book ai didi

class - 通过使用具体类而不是接口(interface),编译后的 js 的大小减少了多少

转载 作者:行者123 更新时间:2023-12-04 17:53:31 24 4
gpt4 key购买 nike

我已经为 GWT 阅读了该内容,指定了返回具体实现的方法,例如:

public ArrayList<String> getList();

而不是通常首选的“抽象接口(interface)”,例如:
public List<String> getList();

导致 GWT 生成一个较小的已编译 javascript 文件,因为客户端(即 js)代码不必满足接口(interface)的所有已知实现(在 List 的示例中,客户端代码必须能够处理 LinkedListArrayListVector 等),因此它可以通过不编译未使用的实现来优化 js。

我密切相关的问题是:
  • 这是真的? (以下问题假设为真)
  • 是使用接口(interface)的每个类还是每个应用程序的优化?即
  • 我看到重构一个类的好处吗?或
  • 一旦所有客户端类都被重构为不使用接口(interface),我是否只会看到好处?
  • 最佳答案

    以下假设您使用该接口(interface)作为 GWT RPC 服务签名的一部分。我认为如果你在 GWT RPC 服务的签名中不使用接口(interface),使用类而不是接口(interface)的影响应该是最小的(例如 GWT 编译器只会编译使用的实现)

    • Is this true? (the following questions assume it is true)


    是的,当 GWT 编译器“知道”哪些类可能从服务器发送到客户端时,它的输出会变小。

    • Is the optimization per-class that uses interfaces, or per application? ie


    在 GWT RPC 的情况下,每个应用程序。

    • Do I see a benefit just refactoring up one class?


    是的,如果接口(interface)需要包含许多类的代码,则由一个实现替换的接口(interface)可以将生成的代码大小减少几 kb。

    但是,除了使用实现而不是接口(interface)之外,还可以在模块定义文件中定义类的“黑名单”,以明确规避在生成的代码中包含实现:类似于
    <extend-configuration-property name="rpc.blacklist"
    value="-java.util.ArrayList" />

    关于class - 通过使用具体类而不是接口(interface),编译后的 js 的大小减少了多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031770/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com