HoneyMoose
  • 首页
  • Java
  • Jersey
  • Jira
  • Confluence
  • U.S.
    • USRealEstate
    • U.S. Travel
    • H1B
  • 项目和网站
    • CWIKI.US
    • OSSEZ 社区
    • WIKI.OSSEZ.COM
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
Computer Science
Computer Science

Java 中使用 public,private 和 protected 修饰的方法

大部分情况下我们都使用这几个修饰来修饰方法。 当然对类来说,相信大部分都默认使用 Public,大部分人都不去纠结。 Public: 简单来说就是谁都可以访问,你写个类除了特殊要求,当然都是希望大部分人用的。 Private:私有。 除了class自己之外,任何人都不可直接使用。简单来说就是一个方法,你只希望自己的这个类可以用,不希望这个方法在其他类中使用。Private 这个在类中的私有方法中定义比较多。 Protected:这个就是最纠结,简单来说就是这个修饰的方法使用范围比 Public 小,但是又比 Private 大。对于其他的外部类,protected 就变成 private。 官方的:Controlling Access to Members of a Class (The Java™ Tutorials > Learning the Java Language > Classes and Objects) 文章对上面几个修饰有了定义。 也顺便偷了一张图。   对我们来说 Protected 和 Public 也差不多了,没有很多奇葩需求的话,你就 Public 算了,省得纠结。 这就是为什么你看很多人的代码的时候,大部分都是 Public 和 Private,用 Protected 修饰的方法远没有这 2 个这么多。 本来不想纠结这几个关键字的,无奈学院派的人非要纠结,有点讨厌。 对日常的业务逻辑开发,只要是类里面的方法,你就 Private,因为别人也不一定用得到。 如果你希望其他人用,就 Public,并且单独做成类,让别人直接调用吧,不要过于纠结。 https://www.ossez.com/t/java-public-private-protected/14056  

2022年08月13日 0Comments 11Browse 0Like Read more
Computer Science

IntelliJ IDEA 打开近期工作的项目的对话框的快捷键

当项目比较多的时候,我们可能需要经常的打开和关闭一些项目。 不幸的是 IntelliJ IDEA 没有提供打开近期项目的快捷键。     当然,我们是可以通过文件中的设置来打开的。 同时你也可以指定一个快捷键。 根据每个人的使用习惯不一样,如果想多敲下字的话,可以使用 cmd + shift + a (Mac) / ctrl + shift + a (Windows) 来打开 Action 的查找对话框来进行查找。 输入 Manage ,然后选择第一个就可以打开了。     感觉也不是非常消耗时间。 https://www.ossez.com/t/intellij-idea/14055

2022年08月13日 0Comments 12Browse 0Like Read more
Computer Science

Java System.lineSeparator 方法

回车换行问题 在不同操作系统中对回车换行的定义是不一样的。 Windows 的回车换行是 2 个字符,对应的是回车+换行,写法就是我们常用的 \r\n Unix 系统下对这个回车换行进行了简化,变成了使用 \n 来表示。 这里就出现了一个问题,对应不同的操作系统,同样的文本,如果只用 \n 的话, Windows 系统读的文本没有换行,只有回车。 JDK 1.7 之前 在 JDK 1.7 之前,如果我们要解决这个问题,我们会使用下面的代码: System.getProperty("line.separator"); JDK 是使用属性配置文件来进行定义的。 这个方法的写法有点容易出错,毕竟是文本了,敲错字很正常。 System.lineSeparator Java 的 System.lineSeparator 这个方法对 System.getProperty("line.separator"); 进行了封装。 这个方法是在 JDK 1.7 以后才提供的,我们直接用就可以了。 如果你查看 JDK 的源代码的话。     这里非常清楚的显示了对代码的封装。 代码显示也非常清楚,这个是从版本 1.7 开始的,主要就是为了 Unix 和 Windows 回车换行问题。     如果你的 JDK 比较新,就大胆用吧。 按照目前 JDK 主流的版本是 1.8 的情况,大部分情况都不会有什么问题。   https://www.ossez.com/t/java-system-lineseparator/14052

2022年08月10日 0Comments 17Browse 0Like Read more
Computer Science

民族融合的湘南典范芬香村 - 建筑特色之建筑艺术

芬香村的古建筑大多是清末民初时期的,村落四周是山岭,山岭上木材很多,村民因地取材,大量采用当地石材和木材建造房子。 芬香村院落的屋墙:墙基是大方块青石,屋外墙先是青石砌到一米高左右,然后用青砖垒砌,采用的大多是空斗墙,硬山墙墙檐上用石灰雕塑描绘条纹,非常鲜明,墙顶的下方用砖砌成窗,不同的房屋墙体,窗户的形状不同,有四瓣棱的、六棱形的。 进第三道栅门的门墙上,用石灰泥堆塑了两重门楣,门楣的彩画清晰明丽,最上层的彩画是两只鸡相向而鸣,两朵牡丹花的花瓣层次分明,左边有一题词:“平安竹报千年碧,富贵花开一品红。”表达了芬香村里的百姓对“平安富贵”的寄望与企盼。 下层画的是喜鹊,回头一鸣是给人们报喜报平安。另一座房屋的门楣上画的是鸟与花卉,其线条精细,形态逼真,可见当时这位民间画师的绘画水平是较高的。             围墙内的房屋则是采用悬山墙,屋檐伸出墙外;屋内大量采用的是木材,穿斗式的木架结构,全木质隔板墙壁,充分利用山中木材。                 马头墙上的排水口设计合理,充分表现了民间匠人的智慧。         最精美的是绦环板、月梁上的木雕和柱础上的石雕。芬香村里的一对狮子、麒麟柱础,是我们在零陵古村落中所见过的最具特色的一对。此外,其瓦当图案也很精致。               https://www.usreio.com/t/topic/273  

2022年08月08日 0Comments 21Browse 0Like Read more
Computer Science

Edge 提供了标签分组功能

在 Edge 中,可以通过拖动标签来对标签进行分组。 这个功能在有很多标签的时候还是比较实用,最好还是不要在浏览器中保留过多标签。     首先,打开新版Edge浏览器,在地址栏处输入“edge://flags”并访问 接着,在“实验”页面中,在搜索栏输入并搜索“Tab Groups”,并将下方三项都设置为“Enabled”,最后点击“重启”按钮即可 这样就开启了“标签页分组”功能啦 对用不上的标签还是及时关闭吧,因为过多标签比较消耗资源。   https://www.ossez.com/t/edge/14051

2022年08月08日 0Comments 20Browse 0Like Read more
Computer Science

Discourse 的关闭主题(Close Topic )和重新开放主题

Discourse 提供了一个关闭主题的功能。 简单的来说就是如果一个主题长期不用或者时间过长了,DIscourse 可以进行关闭。 关闭这个主题可以是自动的,也可以是手动的。     这个关闭主题主要是对级别不高的用户有影响,当用户级别不高,主题被关闭后,用户就没有办法进行回复了。 对高级别用户,这个功能不会做出限制,哪怕是主题关闭了,这些用户也还是可以回复的。 表现 当主题被关闭后,主题的标题签名将会显示一个带有锁的图标。     如果看到这个图标,则表明主题已经被关闭。 重新开放主题 进入主题,通过右侧的配置选项。 对关闭的主题,可以进行重新操作让主题重新开放。     可以对上面的操作来实现主题的关闭和开放。 https://www.ossez.com/t/discourse-close-topic/14050

2022年08月08日 0Comments 18Browse 0Like Read more
Computer Science

Java 多行字符串

在本文中,我们来说说 Java 的多行字符串(multiline strings )。 从 JDK 15 开始,Java 提供了一个称为 Text Blocks 的语法,你可以在代码中直接使用这个功能,如果你安装这个版本的 JDK 的话,那么需要使用一些特定方法实现这个目标。 在本文中,我们还讨论使用其他方法的实现。 文本块 我们可以使用文本块来在代码中定义,文本块使用的是 3 个双引号 “”" (three double quote 3 个双引号): public String textBlocks() { return """ Get busy living or get busy dying. --Stephen King"""; } 这种定义方式在当前 Java 中最方便的实现了,但是因为 JDK 版本的限制,很多项目可能根本没有办法使用这种定义方式。 如果你还没有使用 Java 15,但是使用了 Java 13 和 14 版本的话,我们可以启用预览功能来进行支持。 在后面的文章中,我们将探讨下可能有的其他实现方式来实现文本块的功能。 获得行分隔符 每个操作系统使用自己的方式来确定是否开始一个新行。 在 Java 中,能够非常容易的获得针对运行的操作系统使用的是什么行分隔符,使用下面的代码就可以获得行分隔符了。 String newLine = System.getProperty("line.separator"); 如果你的 JDK 版本是在 7 以上的版本的话,你可以直接使用系统提供的: System.out.println(System.lineSeparator()); 方法。 我们将会使用 newLine 变量在后续的代码中插入一个新行。 String 字符串拼接 String concat 方法能够让我们非常容易的对字符串进行拼接,请考察下面的代码: public String stringConcatenation() { return "Get busy living" .concat(newLine) .concat("or") .concat(newLine) .concat("get busy dying.") .concat(newLine) .concat("--Stephen King"); } 使用 + 操作符,是能够实现上面字符串拼接的另外一种方法。 Java 编译器将会把 concat() 和 + 操作符编译成相同的代码: public String stringConcatenation() { return "Get busy living" + newLine + "or" + newLine + "get busy dying." + newLine + "--Stephen King"; } 字符串 String Join Java 8 使用了一个叫做 String#join 新方法,这个方法将会使用一系列的字符串作为参数。 这个方法将会返回使用分隔符分隔的所有以字符串为参数的字符串。 public String stringJoin() { return String.join(newLine, "Get busy living", "or", "get busy dying.", "--Stephen King"); } String Builder StringBuilder 通常被用来帮助构建字符串,相同的还有一个 StringBuffer,这 2 者的区别主要在于是否是线程安全的问题。请参考:Java 的 StringBuffer 和 StringBuilder 的不同 文章中的内容。 最简单的解释就是 StringBuilder 是线程不安全的。 在基本 Java 实践中,如果我们需要在程序中构建字符串,通常都会使用 StringBuilder 或者 StringBuffer,而尽量避免使用 Java String 的 + 操作符: public String stringBuilder() { return new StringBuilder() .append("Get busy living") .append(newLine) .append("or") .append(newLine) .append("get busy dying.") .append(newLine) .append("--Stephen King") .toString(); } String Writer StringWriter 是另外一种可以用来创建多行字符串的方法。 在这个方法中,我们不需要使用 newLine ,因为我们使用了 PrintWriter 对象,这个对象将会自动添加一个方法 println(); (如果你查看下 JDK 的源代码的话就了解了。) public String stringWriter() { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); printWriter.println("Get busy living"); printWriter.println("or"); printWriter.println("get busy dying."); printWriter.println("--Stephen King"); return stringWriter.toString(); } Guava Joiner 使用外部库,通常对字符串拼接这个问题来说意义不大。 如果你的项目已经使用了外部库的话,你也是可以直接拿来用的。 例如,大部分项目中都会使用的 Guava。我们可以使用 Guava 中的 Joiner 类。 public String guavaJoiner() { return Joiner.on(newLine).join(ImmutableList.of("Get busy living", "or", "get busy dying.", "--Stephen King")); } 从文件中载入 Java 读取文件和从文件中的输出是相同的。 换句话说,Java 从文件中读到什么就会显示什么,因为对于比较长的文本,可以使用属性文件或者文件的方式来把这些数据从程序中分离出来。 读取文件的方式有非常多种,我们通常会使用第三方的库来读取,因为 Java 读取文件的时候比较容易出现异常,同时读取文件有时候还需要处理文件读取的流。 例如下面的代码,我们使用的是原生的文件读取方式: public…

2022年08月08日 0Comments 16Browse 0Like Read more
Computer Science

Java “constant string too long” 编译错误

这个问题是编译时错误,在 Java 的运行时没有这个限制。 当我们在 Java 编译器中输入的变量值超过 64 KB 的话,Java 编译器是不会让编译通过的,你将会得到一个 constant string too long” error from the compiler 错误。 在本文中,我们将会对这个问题的原因进行解释和如何解决这个问题。 问题描述 首先让我们在本地的计算机中重复这个问题,在下面的代码中,插入一个超长的字符串。 @Test public void whenDeclaringTooLongString_thenCompilationError() { String stringTooLong = "stringstringstring ... 100,000 characters ... string"; assertThat(stringTooLong).isNotEmpty(); }     上面输入的字符串超过了 100,000 个字符。因为我们是为了测试使用的,你可以在代码中输入任何很长的字符。 有时候你的 IDE 可能不会提示这个错误,但是我们测试的 IEDA 是没有问题的,这个错误能够完全提示出来。 当然可以使用 maven 来进行编译,相同的代码,如果使用 Maven 进行编译的提示如下: [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:06 min [INFO] Finished at: 2022-08-06T09:34:08-04:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:testCompile (default-testCompile) on project core-java-strings: Compilation failure [ERROR] /D:/WorkDir/Repository/GitHub/cwiki-us-docs/java-tutorials/core-java-modules/core-java-strings/src/test/java/com/ossez/stringtoolong/StringTooLongUnitTest.java:[16,32] constant string too long [ERROR] [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn <args> -rf :core-java-strings 在使用 UTF-8 编码的时候,类文件的字符被限制在 2^16 bytes。 问题解决 因为这个问题是编译时错误,不是运行时问题。 解决这个问题的办法也就非常简单了,如果你需要处理超长的字符串的话,我们可以使用 FileInputStream 的方法来进行处理。 将需要处理的字符串放到文件中就可以了。 然后让你的程序从文件中把数据读出来。 如下面的代码所示: @Test public void whenStoringInFileTooLongString_thenNoCompilationError() throws IOException { FileInputStream fis = new FileInputStream("src/test/resources/stringtoolong.txt"); String stringTooLong = IOUtils.toString(fis, "UTF-8"); assertThat(stringTooLong).isNotEmpty(); } 当然你也可以定义成一个属性文件中的值,这样的话,你可以通过读取属性文件方法把这个值取出来。 这种方法和上面一种方法的本质是一样的,就是用文件来替换掉。 @Test public void whenStoringInPropertiesString_thenNoCompilationError() throws IOException { try (InputStream input = new FileInputStream("src/main/resources/config.properties")) { Properties prop = new Properties(); prop.load(input); String sValue = prop.getProperty("stringtoolong"); assertThat(sValue).isNotEmpty(); } } 然后尝试对上面的代码再次进行重新编译,有关这个字符串过长的错误就解决了。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.433 s [INFO] Finished at: 2020-03-14T18:23:54+01:00 [INFO] ------------------------------------------------------------------------ 当然,你也可以使用字符串拼接的方式,将希望处理的字符串进行拼接。 但并不十分推荐使用这种方法来进行处理。 结论 在本文中,我们对 constant string too long 编译错误进行了说明,并且提供了解决的方法。 简单来说就是使用文件来进行替换。 测试源代码 相关的测试源代码,请访问: https://src.ossez.com/cwiki-us-docs/java-tutorials/src/branch/main/core-java-modules/core-java-strings/src/test/java/com/ossez/stringtoolong/StringTooLongUnitTest.java 您也可以 Fork 代码后提交更新。   https://www.ossez.com/t/java-constant-string-too-long/14048

2022年08月06日 0Comments 28Browse 0Like Read more
Computer Science

Discourse 清理存储空间的方法

Discourse 使用一段时间以后会发现硬盘空间占用非常多。 主要是因为 Docker Image 的问题,如果升级次数越多,空间占用越多。 运行下面的命令: ./launcher cleanup 能够帮助你清理 Discourse 占用的空间。 如下面代码所示: [[email protected] discourse]# ./launcher cleanup WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y Deleted Containers: 56cf2b82033af7813aaf7ee02eb8793aa15f8d3a025df8af2e4df75cc8f4dc96 Total reclaimed space: 0B WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? [y/N] y Deleted Images: deleted: sha256:506f9cdf603a473f3ba35a8ba01ca70024849dd5c3797da49e0d3c7c802a4f0b deleted: sha256:f1d2b9d8a3e0db1e7bb0a67743a614c4d1b3a7e067c53a4434fd72ed7d67df52 untagged: discourse/base:2.0.20210415-1332 untagged: discourse/[email protected]:b3b1eb6d859d683f26ad2a02e0efabcd502a63ab07b8211e4c425aa7ba7dd3a4 deleted: sha256:30e4746e631e7577e7ebd083e48947c755842801a00bc257e47759fecd499712 deleted: sha256:c1895ca2a8f6e6463a576d86b0038b82e86919c8899ebad7e15021d45e7f7199 deleted: sha256:7e718b9c0c8c2e6420fe9c4d1d551088e314fe923dce4b2caf75891d82fb227d deleted: sha256:50db4216c5d5c853293af9fab8d467c74b1e71d82e70a03c8dd1984dc3ef0431 deleted: sha256:b62f20d4a8836c1d9abcf081c16c834587ec15680a8bd34017a0621510aea57b untagged: discourse/base:2.0.20201221-2020 untagged: discourse/[email protected]:e181dd9046cc293b10c5b29bbc21c5aa8b939ba5f0c500da4a9e952ed0b5195d deleted: sha256:6b45f8ee2ab2e90b0a8ea371d51f5f0dc080b7955f9812b47a79c261aaa29823 deleted: sha256:05c8e0789bfe3e0486776c00befc48d0f0e5569c0361f181877f9611c6f1f635 deleted: sha256:3311925cea5165456fa79172f8186c58d80c2424bcd2c899a899a66ba51de9b4 deleted: sha256:a0676b0d76ab4dbef950969be61a733e5d8282b2ad2685105aa179f0707a74d8 deleted: sha256:8ecb2a5f79248ebea87567efabd251562fee6d09858fdd391a116eb42d641feb deleted: sha256:51f0314e2e6ae5c1ca3e4075bdd919980135340f24a40f1a574cdd5eadc57b09 deleted: sha256:aab4715f96bfbcb2f97387ef16730db52252ac3a01a1d37c2f9f2da031316b97 deleted: sha256:c98b940b38e61975ea39e2e8159796b6d21baf4bb7f5d0418edce2aca657bff5 untagged: hello-world:latest untagged: [email protected]:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b deleted: sha256:9c27e219663c25e0f28493790cc0b88bc973ba3b1686355f221c38a36978ac63 untagged: discourse/base:2.0.20220720-0049 untagged: discourse/[email protected]:7ff397003c78b64c9131726756014710e2e67568fbc88daad846d2b368a02364 deleted: sha256:7be781c858e622c5fb31b9dc6a5d3e492c065b904ffc16ce477fcc53ca65b9fa deleted: sha256:5b5900cb8266bbdd3e06b78abc67a0dcec04af1381ff630faa56b5c0149692c9 deleted: sha256:09dd498b1f776d6661e4b47b24e70d3bbc7db406345d65ced288f6b245927a9c deleted: sha256:5ac0c84a3441c11fb2c39479fef77749eee9f96ba12bc9da9c049c14788775a3 deleted: sha256:c8c660d577fda3361260d76be6e0fabf3da4588e3d999cc99753203af01f6e80 deleted: sha256:3e45b3847b22d5a008e7a4e01a1c7bd39d75225589e18c2ab545ba809a613601 untagged: discourse/base:2.0.20211118-0105 untagged: discourse/[email protected]:74b41fffd4f05433eb7c9b72954b1f5f8b15cd0e802bb724c96b7d699c3f6fa1 deleted: sha256:b6cc7cf8974a6ef7bb64c36f4592af261cda0d5565bd91da603568ce26968048 deleted: sha256:c1455b2fdbca024c36c4e75746051b77c3637020cfa1e36a41440292a8c39424 deleted: sha256:77b323d4ec74aad770337f99a60e862a64ccc53f4775b5f4945df0e606f78b90 untagged: discourse/base:2.0.20210528-1735 untagged: discourse/[email protected]:b1890ab83b905ada5c9b7221264d62159bbf63bda706cdc652b0533bc90431c5 deleted: sha256:4ce0d1e5d32feaa17da3d402ab2f5fe038137662ce77d165e0567d76db40c095 deleted: sha256:5c06ea48f14b9a051dbcccf1a0412e85df72ab9e21af9c1962e3cdea0b1b2a77 deleted: sha256:a0514302287107820c8e83f8f895c7f6a7ba563a577ebac462574b0d9b43c5ee deleted: sha256:e3a31c05b5e75d8d70d5de0b54eaabeee2038934666c03a0345ad41a2cd9bb55 deleted: sha256:482386bf57afd5847d36e8ee4324f76d63e7cdf5234e7be3b760b78f64db7a71 deleted: sha256:c497ee682f8262de408c6f12917672455e38c8f710704a7b090e2fd51756eba6 deleted: sha256:02c055ef67f5904019f43a41ea5f099996d8e7633749b6e606c400526b2c4b33 untagged: discourse/base:2.0.20220128-1817 untagged: discourse/[email protected]:dcb4eb8e41a2e84f776f80587f308d167a54ad7ff4ba616199891828bbd4ddae deleted: sha256:bcd525e1be918b0c4e9bf19495943eb8b7cb548d073b9f3ad23c714d814c1808 deleted: sha256:0586eaea867ec10dddd5fca8f81e17cba7f952270c5ff596230ec12033b3c6d1 deleted: sha256:c35314905abc8c9c72a22fb56b1cabf20df44788f7438da5c8d9b56d037e32c3 deleted: sha256:7d0ebbe3f5d26c1b5ec4d5dbb6fe3205d7061f9735080b0162d550530328abd6 deleted: sha256:73460cdc27d4133c601563777240899fb33ecc7f7477b16f5031553de368208f deleted: sha256:e34987cfb7c91bff520e060d9e4f791e76295a4b6839dc1684cf87f0aea79c2a deleted: sha256:c0704d4ce2b4b1b395895db07af5dd040bac1099c6e7dc6c634e144d55215458 deleted: sha256:9b70fca9c051383c6b74a2a21804cbb967e3fd49c8f88f9ff12109e95af27fb3 deleted: sha256:87c8a1d8f54f3aa4e05569e8919397b65056aa71cdf48b7f061432c98475eee9 untagged: discourse/base:2.0.20220413-0411 untagged: discourse/[email protected]:bd13d6869319791c8379143cc8a1c4cfc71d5406dd7e606dffdd40da04d4ed1b deleted: sha256:ab71a5d974602eaf772a3e07b44ae981b85a36927d231f06e539e631d3db3e92 deleted: sha256:bb449b86e88550855d381f04c9341c1ab39498127043d18c9a66fbdc3b85982e deleted: sha256:51855ced24070ab6ec11f2675db73131b3b3a469a0f63cd5eb7742189b838b38 deleted: sha256:608f3a074261105f129d707e4d9ad3d41b5baa94887f092b7c2857f7274a2fce Total reclaimed space: 20.57GB 帮助你清理了超过 20 G。     这个命令可以没事运行下。   https://www.ossez.com/t/discourse/14047

2022年08月04日 0Comments 32Browse 0Like Read more
Computer Science

Java 是否应该使用通配符导入( wildcard imports)

这个问题应该是所有使用过 Java 第一课的人都会告诉你不要使用通配符导入。     主要问题 主要的问题是它使你的本地命名空间变得混乱。 用最简单的说法就是 Date 这个对象,你可能在 java.sql.Date 和 java.util.Date 都会有这个对象。 如果你使用通配符导入的话,就完全不知道用哪个对象了。 通配符导入真的有那么讨厌吗 从代码执行效率来说,使用通配符导入没有任何区别。 例如: java.io.* 和 java.io.File 都会编译成相同的二进制代码。 所以在运行时,是否使用通配符导入完全没有区别。 IDEA 默认使用通配符导入的类的数量是 5 。在 IDEA 中,如果你在同一个包中导入的类超过 5 个的时候,将会默认使用通配符导入。 具体情况具体分析 这个我们认为和公司的编码规范有关,如果公司默认的编码规范就是不允许有通配符导入。 那你就别通配符导入吧,那么你忍受下在代码前面有几十行的代码导入,通常 IDE 有代码折叠功能,这也能忍受。 如果你是通过 GitHub 的代码查看的话,那么恭喜你,第一页基本上看不到什么东西。 我们认为,不需要认为通配符导入是下山猛虎,如果有代码导入冲突的话,在编译阶段就能发现了,没有必要拿着教科书的所谓经验不放。 如果觉得 IDEA 的默认 5 的配置太小了,建议就调整到 12 或者更高。 相信所谓使用通配符导入的情况绝大部分情况下不会造成什么困扰,同时还能增加代码的简洁度。 如果你有什么看法也可以一起讨论讨论喔。   https://www.ossez.com/t/java-wildcard-imports/14046

2022年08月03日 0Comments 33Browse 0Like Read more
12345…170
Newest Hotspots Random
Newest Hotspots Random
Java 中使用 public,private 和 protected 修饰的方法 IntelliJ IDEA 打开近期工作的项目的对话框的快捷键 民族融合的湘南典范芬香村 - 振兴绿色乡村 Java System.lineSeparator 方法 民族融合的湘南典范芬香村 - 故事与民谣 民族融合的湘南典范芬香村 - 民俗风情之崇文重教
JAVA程序员写的接口没有PHP程序员体验好Java 虚拟机的概念是怎么来的Protocol buffers 的问题和滥用Discourse 自定义头部链接(Custom Header Links)GRPC MacOS M1 处理器的问题靠山面水的诗意适居 —— 传统村落水口山镇大皮口村
如果我学习 JDK9 版本的,那以后公司用1.8怎么办 Confluence 6 配置 Office 连接器选项 Spring Batch 介绍 Confluence 6 数据收集隐私策略 美国房地产交易遇到留置权(Lien)处理方式 Python 项目结构
Categories
  • Akka
  • Algorithm(算法)
  • AMQP
  • Angular
  • CI
  • Compile And CI
  • Computer Science
  • Confluence
  • DataBase
  • Gradle
  • H1B
  • Hibernate
  • IDE
  • Java
  • Jersey
  • Jira
  • MariaDB
  • PrestaShop
  • Spring
  • Spring Batch
  • U.S.
  • U.S. Travel
  • USRealEstate
  • 我的小厨

COPYRIGHT © 2020 HoneyMoose. ALL RIGHTS RESERVED.

THEME CWIKIUS.CN MADE BY VTROIS