Chương trình Java đơn giản sau đây xuất hiện để hiển thị chuỗi Xin chào thế giới thông qua tuyên bố System.out.println("Hello World");
nhưng không. Nó chỉ đơn giản là thay thế này bằng một chuỗi khác trong trường hợp này, Ngày tốt !! và hiển thị nó trên bảng điều khiển. Chuỗi Hello World không hiển thị. Hãy xem đoạn mã đơn giản sau đây trong Java.Một mã Java đơn giản hoạt động tốt nhưng chức năng theo cách hơi khó theo dõi
package goodday;
import java.lang.reflect.Field;
final public class Main
{
public static void main(String[] args)
{
System.out.println("Hello World");
}
static
{
try
{
Field value = String.class.getDeclaredField("value");
value.setAccessible(true);
value.set("Hello World", value.get("Good Day !!"));
}
catch (Exception e)
{
throw new AssertionError(e);
}
}
}
Chỉ cần một câu hỏi về mã này ở đây. Nó hoạt động chính xác như mong đợi nhưng tôi không thể giảm độ dài của chuỗi Ngày tốt !!. Nếu một nỗ lực được thực hiện để làm như vậy, nó gây ra một java.lang.ArrayIndexOutOfBoudsException
. Nếu độ dài được tăng lên, chương trình chạy tốt nhưng phần còn lại của các ký tự trong chuỗi hiển thị bị cắt ngắn có nghĩa là độ dài của cả hai chuỗi phải giống nhau. Tại sao? Đây là điều mà tôi không thể hiểu được.
Tất nhiên bạn nhận ra rằng bạn không bao giờ nên làm điều này bằng mã thực? –
Tôi biết Java trong một thời gian dài, nhưng không bao giờ thấy smth như thế này trước đây, câu hỏi thực sự tốt: D –