小编Ivo*_*ori的帖子

从sun.misc.BASE64迁移到Java 8 java.util.Base64

是Java 8 java.util.Base64MIME编码器和解码器一个下拉更换为不支持的,内部的Java API sun.misc.BASE64Encodersun.misc.BASE64Decoder

到目前为止我的想法和原因

根据我的调查和快速测试(见下面的代码),它应该是替代品,因为

  • sun.misc.BASE64Encoder基于其JavaDoc是RFC1521中规定的BASE64字符编码器.此RFC是MIME规范的一部分......
  • java.util.Base64基于JavaDoc 使用RFC 2045表1中指定的"Base64 Alphabet" 进行编码和解码操作...MIME下

假设RFC 1521和2045没有重大变化(我找不到任何变化)并且基于我使用Java 8 Base64 MIME编码器/解码器的快速测试应该没问题.

我在找什么

  • 确认或反驳"直接替换"点OR的权威来源
  • 一个反例,显示了java.util.Base64具有与sun.misc.BASE64Encoder OpenJDK Java 8实现(8u40-b25)(BASE64Decoder)不同的行为的情况
  • 你认为无论如何回答上述问题肯定

以供参考

我的测试代码

public class Base64EncodingDecodingRoundTripTest {

    public static void main(String[] args) throws IOException {
        String test1 = " ~!@#$%^& *()_+=`| }{[]\\;: \"?><,./ ";
        String test2 = test1 + test1;

        encodeDecode(test1);
        encodeDecode(test2);
    }

    static …
Run Code Online (Sandbox Code Playgroud)

java base64 encoding mime java-8

30
推荐指数
2
解决办法
2万
查看次数

Java 14 记录文档中“浅不可变”的含义

我正在阅读Records的文档, 但不理解“浅不可变”一词。我们所说的浅不可变是什么意思?如果它是不可变的,为什么我们需要一个复制构造函数?为什么有两个“Hello World!”?

对于所有记录类,以下不变量必须成立:如果记录 R 的组件是 c1、c2、... cn,那么如果记录实例被复制如下:

 R copy = new R(r.c1(), r.c2(), ..., r.cn());  // copy constructor ?
Run Code Online (Sandbox Code Playgroud)

那么一定是这样的r.equals(copy)

java java-14 java-record

26
推荐指数
2
解决办法
1565
查看次数

如何转换 for 循环以找到 Java 流的第一次出现?

我有以下可以正常工作的代码

for (UniversityClass class : allClasses)
    {
        Period<Date> classDate = class.getClassDates();
        if (classDate.start().before(classEndDate)
                && classDate.end().after(classBeginDate))
        {
            classBooked = true;
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我试过这个:

allClasses.stream().filter(class -> {
            Period<Date> classDate = class.getClassDates();
            if (classDate.start().before(classEndDate)
                && classDate.end().after(classBeginDate))

            return true;
        }).findFirst().ifPresent($ -> {
            classBooked = true;
        });
Run Code Online (Sandbox Code Playgroud)

但这会引发添加 return 语句。此外,该classBooked变量需要声明为 final,但这是不可能的。正在做的错误是什么?

此外,一旦为真,我就需要break从它。这就是为什么我想到添加 findFirst().ifPresent()

java java-stream

14
推荐指数
3
解决办法
180
查看次数

当我尝试使用 LWJGL 库加载声音时,为什么会收到错误“NoClassDefFoundError: sun/misc/Unsafe”?

这是我的 Eclipse 项目文件的屏幕截图。 日食截图

new Sound("Res/MouseClick.ogg")当我尝试在类中的AudioPlayer第 15 行启动一个对象时,出现以下错误。

package com.game;
import java.util.HashMap;
import java.util.Map;

import org.newdawn.slick.Music;
import org.newdawn.slick.Sound;

public class AudioPlayer {
    public static Map<String, Sound> soundMap = new HashMap<String, Sound>();
    public static Map<String, Music> musicMap = new HashMap<String, Music>();

    public static void load() {
        try {
            soundMap.put("menu_sound", new Sound("Res/MouseClick.ogg")); // <- throws error
            musicMap.put("music", new Music("Res/Background.ogg"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Music getMusic(String key) {
        return musicMap.get(key);
    }

    public static Sound getSound(String …
Run Code Online (Sandbox Code Playgroud)

java noclassdeffounderror lwjgl

8
推荐指数
1
解决办法
1万
查看次数

使用 Eclipse Checkstyle 插件时如何修复“属性‘allowUndeclaredRTE’不存在”错误?

这是我的错误日志:

\n
\n

Checkstyle-Plugin:无法初始化模块 TreeWalker - 无法初始化模块 JavadocMethod - 属性“allowUndeclaredRTE”不存在,请检查文档

\n
\n

显然,\xe2\x80\x9callowUndeclaredRTE”是这里的关键。我该如何修复它?

\n

eclipse javadoc checkstyle

6
推荐指数
2
解决办法
3554
查看次数

Alias 无法在 Mac 上永久保存?

我想创建自己的别名,使一些命令的详细simpler.I添加 alias ll='ls -l'~/.bashrc,就像这样:

 ANDROID_NAME=/Users/smy/Library/Android/sdk
 PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH
 PATH=$ANDROID_NAME/platform-tools:$PYTHONPATH:$PATH

 export ANDROID_HOME
 export PYTHONPATH
 export PATH

 #alias 
 alias ll='ls -l'
Run Code Online (Sandbox Code Playgroud)

当我第一次将此别名添加到此文件时,我执行source命令,如下所示:

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

然后在这个命令窗口中,它可以工作,但是当我创建一个新的命令窗口时,它无法识别ll别名,即当我执行时ll,存在这样的错误:

-bash: ll: command not found
Run Code Online (Sandbox Code Playgroud)

当我输入时source ~/.bashrc,它会起作用。

所以我的问题是: 为什么每次输入别名时都无法识别别名,为什么我必须source在新命令窗口打开时执行命令才能使其工作,以及如何解决这个问题。我在 mac 上工作,任何人都可以教我这个,谢谢!

macos command-line alias

3
推荐指数
1
解决办法
2520
查看次数

jabba中'adopt'和'adopt-openj9'有什么区别

我设置了jabba。当我跑

jabba ls-remote
Run Code Online (Sandbox Code Playgroud)

我看到这个名单

1.13.0
1.13.0-2
1.6.65
adopt@1.14.0-1
adopt@1.14.0-0
adopt@1.13.0-2
adopt@1.13.0-1
adopt@1.13.0-0
adopt@1.12.0-2
adopt@1.12.0-1
adopt@1.12.0-0
adopt@1.11.0-7
adopt@1.11.0-6
adopt@1.11.0-5
adopt@1.11.0-4
adopt@1.11.0-3
adopt@1.11.0-2
adopt@1.11.0-1
adopt@1.11.0-0
adopt@1.10.0-2
adopt@1.9.0-0
adopt@1.8.0-252
adopt@1.8.0-242
adopt@1.8.0-232
adopt@1.8.0-222
adopt@1.8.0-212
adopt@1.8.0-202
adopt@1.8.0-192
adopt@1.8.0-181
adopt@1.8.0-172
adopt-openj9@1.14.0-1
adopt-openj9@1.14.0-0
adopt-openj9@1.13.0-2
adopt-openj9@1.13.0-1
adopt-openj9@1.13.0-0
adopt-openj9@1.12.0-2
adopt-openj9@1.12.0-1
adopt-openj9@1.12.0-0
adopt-openj9@1.11.0-7
adopt-openj9@1.11.0-6
adopt-openj9@1.11.0-5
adopt-openj9@1.11.0-4
adopt-openj9@1.11.0-3
adopt-openj9@1.11.0-2
adopt-openj9@1.11.0-1
adopt-openj9@1.8.0-252
adopt-openj9@1.8.0-242
adopt-openj9@1.8.0-232
adopt-openj9@1.8.0-222
adopt-openj9@1.8.0-212
adopt-openj9@1.8.0-202
...
Run Code Online (Sandbox Code Playgroud)

什么之间的区别adopt@...adopt-openj9@

上面也有三个没有字母的,是什么?

java

3
推荐指数
1
解决办法
262
查看次数

Kotlin - menuInflater 找不到 xml 文件的引用

我正在尝试将创建选项菜单添加到我的活动中,但是 android-studio 向我发送了此错误
Unresolved reference: chat_app_menu
这是我在 Kotlin 中的代码

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.chat_app_menu)
        return true
    }
Run Code Online (Sandbox Code Playgroud)

menuInflater.inflate(R.menu.chat_app_menu)显示错误的行但是,我已经在\下Unresolved reference: chat_app_menu
创建了资源文件chat_app_menu.xmlres\menu

这是我的导入文件

package com.example.chat_app

import android.R
import android.os.Bundle
import android.util.Log
import android.view.Menu
import android.view.MenuInflater
import androidx.appcompat.app.AppCompatActivity
import com.google.firebase.auth.FirebaseAuth
Run Code Online (Sandbox Code Playgroud)

我的文件目录:

我的文件目录

我应该怎么做才能禁用此错误以使应用程序正常运行?

optionmenu kotlin android-studio

2
推荐指数
1
解决办法
1042
查看次数

禁止在 Ruby on Rails 中登录某些参数

我注意到,每当 Ruby on Rails 中的任何控制器执行任何操作时,某些日志都会自动写入日志文件,例如:

Processing by CasesController#update as HTML

Parameters: {"utf8"=>"?", 
"authenticity_token"=>"XAAgI8MGxIIyqcBTUqtHvqjechgNHqxKLtZAVIaceZSuhEskQA6i2mjbItbbruabPMPWGM8AXKDWNdnqJRCGBw==",
"versionId"=>"9",
"type"=>"case", 
"queue"=>"filing", 
"disposition"=>"Filed",
 "assignee"=>"abc",
 "decisionDate"=>"2020-05-19",
 "filingDate"=>"2020-05-19",
  "accounts"=>[{"lineOfBusiness"=>"ACCS",
  "obfuscatedMerchantId"=>"A1JLF6PVG3MPCN", 
  "fpsAccountId"=>"",
  "productAccountId"=>"",
  "includeInInvestigation"=>"yes",
  "includeInFiling"=>"yes"}],
  "relatedItems"=>[{"itemType"=>"OBSERVATION_ID",
  "itemValue"=>"RI:1-MPI:1-PI:4839201-JI:10334165-RRD:13-MAY-20-EQR:Rule_ACCS_SAM_MultiACCSBankAccounts-CID:A1JLF6PVG3MPCN"},
 {"itemType"=>"IWB_TASK_ID", "itemValue"=>"7017140401"}],
 "button"=>"", "id"=>"cab90a9e-78e9-6d58-c5c8-c4b3424d0751"}
Run Code Online (Sandbox Code Playgroud)

我想避免记录某些敏感参数,例如我想避免versionId被记录。我怎样才能做到这一点?

ruby parameters logging ruby-on-rails

1
推荐指数
1
解决办法
440
查看次数