ทำลายมาตรฐานบางอย่าง! [ปิด]


14

ทุกคนรู้ว่าวลี "กฎถูกทำให้เสีย!" ดังนั้นนี่คือหน้าที่ของคุณ:

เขียนรหัสในภาษาใดก็ได้ที่ทำลายมาตรฐาน สิ่งนี้สามารถเป็นอะไรก็ได้ตั้งแต่การวางสาย 240 โวลต์ลงไปที่ USB เพื่อส่งเราเตอร์ของคุณ ( ไม่ใช่เว็บไซต์ของคนอื่น!) ด้วยแพ็กเก็ตขนาด 10mb! (อย่ารับความคิดใด ๆ ทั้งสองอย่างนี้อาจทำให้เกิดการลงโทษได้!)

คำตอบที่ถูกโหวตมากที่สุดหลังจาก 10 วัน (เช่นการละเมิดที่ร้ายแรงที่สุด) จะเป็นผู้ชนะ!

กฎ:

  1. ต้องอธิบายรหัส
  2. มาตรฐานที่คุณทำลายจะต้องเชื่อมโยงกับและคุณต้องอธิบายสิ่งที่คุณกำลังทำ (หมายถึง 1) เพื่อทำลายมัน มิฉะนั้นคำตอบจะไม่ได้รับการยอมรับ
  3. คำตอบที่เพิ่งล่ามหรือทำให้หยุดทำงานจะไม่ได้รับการยอมรับ ฉันต้องการคำตอบที่สร้างสรรค์ไม่เพียงแค่วางสิ่งที่ต้องการ𐒢ลงใน IDLE (ซึ่งขัดข้อง)
  4. ไม่อนุญาตการใช้ประโยชน์จากข้อบกพร่องเว้นแต่ว่ามันจะผิดมาตรฐาน มิฉะนั้นคำตอบจะไม่ได้รับการยอมรับ

เริ่มต้นและขอให้สนุก!


18
ส่วนใหญ่ของคำตอบในเว็บไซต์นี้ละเมิดอย่างน้อยหนึ่งในมาตรฐานการเข้ารหัส ...
องค์การคอมมิวนิสต์สากล

2
นี่ไม่ใช่ต้นฉบับสำหรับฉัน แต่ ... ภาพเคลื่อนไหว JPEG!
Kendall Frey

Hey, คุณขวาเกี่ยวกับ𐒢
TheDoctor

4
นักเรียนของฉันมักจะละเมิดมาตรฐาน QA ใด ๆ เมื่อเขียนรหัส พวกเขาสมควรชนะ!
Max Ried

1
แรงบันดาลใจสามารถมีได้ที่ "วิธีการใช้ GOTO ใน Java": stackoverflow.com/questions/2430782/ …
Abulafia

คำตอบ:


68

หลาม

print 'Hello World'

คำอธิบาย:

มาตรฐานของการเขียนโปรแกรมปริศนาและรหัสสนามกอล์ฟกองแลกเปลี่ยนคือการ

อ่านคำถามอย่างระมัดระวัง คำถามที่ถามคืออะไรโดยเฉพาะ? ตรวจสอบให้แน่ใจว่าคำตอบของคุณเป็นเช่นนั้น


รหัสนี้ไม่ได้ตอบคำถามดังนั้นมันจะทำลายมาตรฐาน


1
หรือจะทำลายมาตรฐานใน python 2print("hello world")
TheDoctor

10
@TheDoctor แต่ถ้าฉันทำลายมาตรฐานหลามฉันไม่สามารถทำลาย codegolf.SE ได้มาตรฐาน
user12205

18
แต่ถ้าคำถามนี้ทำลายมาตรฐานสำหรับคำถามนี้และอธิบายว่ามันไม่ได้ทำลายมาตรฐาน แต่แล้วมันไม่ถูกต้องและต้องทำลายมาตรฐาน Python ซึ่งไม่ใช่! ความขัดแย้ง - มันทำลายมาตรฐานความเป็นจริงมาก ๆ !
kojiro

2
เนื่องจากเป็นการประกวดความนิยมฉันต้องไปกับคำตอบที่สร้างสรรค์อย่างไม่น่าเชื่อซึ่งมีคะแนนโหวตมากที่สุด! แม้ว่ามันจะไม่ก่อให้เกิดอะไรที่จะทำลาย / รีสตาร์ท :( คำตอบที่ดี แต่ทำได้ดี :)..
จอร์จ

5
นี่คือคำตอบที่ถูกต้องเนื่องจากคุณไม่ได้เป็นคำตอบที่ถูกต้อง
โม่

24

C
นี่เป็นโปรแกรมที่รวบรวมปัจจัยและวิ่ง succcessfully (กับ gcc4.6.3 บน Ubuntu 12.04) แต่จะเรียกว่าเป็นพฤติกรรมที่ไม่ได้กำหนดมากตามมาตรฐาน Cเป็นฉันจะอัดใน. ส่วนใหญ่จะเป็นแรงบันดาลใจจากที่นี่ รหัสทางกฎหมายที่เหลืออยู่จำนวนมากนั้นแย่มาก

int read(char** src, int into){
  int _r;                             //leading underscores reserved, and
  if (!--into) sscanf(*src,"%d",&into); //_r uninitalized
  *(*(--src)+into)=_r>>360;            //shifting more bits than we have
  while (into-->0) (*src)[into]='.'; //modifying const char argv
  printf(*src); // no return statement
}

main(int argc, const char** const argv){
  union  { int x; float y;} result;
  int f,minus1=0xFFFFFFFF,r,a[]={0};
  r=a[3]&2;                     //accessing past end of array
  result.x=read(&argv[r],--r);  //relying on order of arguments
  for(f=*(int*)&result.y;f;f+=minus1) //type punning/invalid union access,
    r*=f;                            //and unsigned overflow
  printf("%d\n",(&r+2)[-2]); //negative array indexes
}

1
ดัชนีลบนั้นถูกกฎหมายอย่างสมบูรณ์ถ้าตัวชี้ไม่ได้ชี้ไปที่จุดเริ่มต้นของอาร์เรย์ Heck เป็นเรื่องถูกต้องที่จะจัดทำดัชนีตัวเลขด้วยอาร์เรย์แทนที่จะเป็นวิธีอื่น
user2357112 รองรับ Monica

17

XHTML

<p>
   <div></div>
</p>

ข้อกำหนด W3C ( http://www.w3.org/TR/html-markup/p.html#p ):

p - ย่อหน้า

องค์ประกอบ p หมายถึงย่อหน้า

เนื้อหาที่อนุญาต

เนื้อหาวลี

โอ้ฉันรู้สึกสกปรก!

แก้ไข: @xfixชี้ให้เห็นว่าข้อผิดพลาดที่ฉันแสดงเป็นจริง XHTML ข้อผิดพลาด HTML สาเหตุนี้ดูเท่กว่าและเห็นได้ชัดน้อยกว่า:

<p><div></div><p>กลายเป็น<p /><div></div></p>เพราะ<div>สาเหตุการ<p>ปิดตัวเอง จึงส่งผลให้เกิดข้อผิดพลาดเนื่องจากเราพยายามปิดย่อหน้าที่ไม่มีอยู่


นี่ไม่ใช่ปัญหาที่นี่ ปัญหาที่แท้จริงคือการที่</p>แท็กที่มีอยู่โดยไม่ต้องปิดมันเป็นปิดโดยอัตโนมัติ<div> <p>
Konrad Borowski

@xfix คุณมีการอ้างอิงถึงข้อมูลจำเพาะที่มีการกำหนดลักษณะการทำงานนี้หรือไม่? ตัวตรวจสอบความถูกต้อง W3 จะทำให้หายใจไม่ออกในสิ่งนี้พร้อมกับข้อผิดพลาดที่ฉันคาดหวังฉันคิดว่าคุณกำลังอธิบายถึงการติดตั้งเบราว์เซอร์ไม่ใช่ HTML
George Reith

1
คุณอาจคิดถึง XHTML ใน HTML4 และ HTML5 <p>ถูกปิดโดยแท็กบางอย่าง สำหรับเครื่องมือตรวจสอบ HTML4 ฉันได้รับ "แท็กปิดท้ายสำหรับองค์ประกอบ" P "ซึ่งไม่ได้เปิด"
Konrad Borowski

@ xfix ใช่แล้ว! ฉันจะแก้ไขในภายหลัง ไชโย
George Reith

เป็นที่คุณไม่เคยเห็น Java dev HTML ทั่วไปหรือคุณไม่ต้องการแสดงมาตรฐานที่แตกหักมากมาย
Erik Reppen

12

HTTP / 1.1: การตอบสนอง - รหัสสถานะและวลีเหตุผล

องค์ประกอบรหัสสถานะเป็น 3 หลัก ...

ต้องการฉันไปอีกหรือไม่ รหัสสถานะนี้ไม่ใช่หนึ่งในรหัสที่กำหนดไว้ในมาตรฐาน มันไม่ได้เริ่มต้นด้วยหลักหมวดหมู่ที่ต้องการ มันไม่ได้ยาว 3 หลัก

เบราว์เซอร์ของฉันยังคงสามารถโหลดหน้าเว็บได้

นอกจากนี้คำตอบนี้แบ่งหนึ่งใน "มาตรฐาน" ของไซต์นี้ :)

เอาต์พุต (บรรทัดสถานะ):

HTTP/1.1 0 :)
var http = require("http");
var server = http.createServer(onHttpRequest);
server.listen(80);

function onHttpRequest(request, response)
{
    response.writeHead(0, ":)", { "Content-Type": "text/plain" });
    response.write("Hello, World!");
    response.end();
}

JavaScript (โหนด)


1
จากความอยากรู้คุณลองใช้รหัสสถานะสี่หลักหรือไม่ ห้าหลักบาท?
MatrixFrog

@ MatrixFrog ฉันลองใช้รหัส 4 หลัก เบราว์เซอร์นั้นใช้ได้กับมัน ฉันไปด้วย 0 เพราะมันแบ่งมากกว่ามาตรฐาน
เคนดัลล์เฟรย์มี. ค.

12

ฉันเพิ่งทำลายมาตรฐานกี่มาตรฐาน

ฉันได้เขียนโปรแกรมที่น่ากลัวที่นี่แน่นอน

PHP

a: goto lol; begin();
b: 
c: echo j; goto h;
d: echo u;
e: echo s;
f: echo t;
g: 
h: echo k; goto o;
i: echo i; goto c;
j: echo l;
k: echo l;
l: echo e;
m: echo d;
n:
o: echo s;
p: echo t; goto u;
q: echo a; goto z;
r: echo n;
s: echo d;
t: echo a;
u: echo r; goto q;
v: echo D; goto i;
w: echo s;
x: 
y:
z: die("!");
lol: goto v;

ไข่อีสเตอร์:ตัวอักษรเอ็ดถ้าอ่านในแนวตั้งจะอ่านechojust killed standarDs!

Sidenote: การรันโปรแกรมนี้จะแสดงชื่อของผู้ชายที่รักจริงgoto


1
ถ้าคุณบอกมันทันทีมันไม่ใช่ "ไข่อีสเตอร์" ...
Denys Séguret

9

C # - ทำลาย Unicode

อัลกอริทึมง่าย ๆ ในการย้อนกลับสตริง:

public string Reverse(string s)
{
    StringBuilder builder = new StringBuilder();
    for (int i = s.Length - 1; i >= 0; i--)
    {
        builder.Append(s[i]);
    }
    return builder.ToString();
}

สิ่งนี้จะทำลายมาตรฐานUnicodeเพราะมันไม่ถูกต้องเก็บคู่ตัวแทนเข้าด้วยกันอย่างถูกต้องสร้างสตริงที่ไม่ถูกต้อง ใน. NET และภาษาแพลตฟอร์ม / การเขียนโปรแกรมอื่น ๆ อีกมากมาย a charไม่ใช่ตัวอักษรจริงๆ แต่เป็นหน่วยรหัสUTF-16

หมายเหตุ: นอกจากนี้ยังมีการเปลี่ยนแปลงตัวอักษรที่จะรวมกับเครื่องหมายรวมภายหลัง (เช่นกำกับ) ซึ่งอาจมีหรือไม่มีเจตนา


8

JavaScript

เรียกใช้ในคอนโซลในหน้านี้

var items = [], p = 1, finish = false, intr = setInterval(function() {
    if (p >= 10) finish = true
    $.get(unescape(escape('http://api.stackexchange.com/2.2/answers?page=' + (p++) + '&pagesize=100&order=desc&sort=votes&site=codegolf&filter=!*LVwAFZ.YnaK-KS*')), function(x) {
        items = items.concat(x.items)
        if (finish) {
            clearInterval(intr)
            onFinish()
        }
    })
}, 500)

function onFinish() {
    var item = items[Math.floor(Math.random() * items.length)]
    document.write(item.body)
}

เเรงบันดาลใจจาก

คำตอบส่วนใหญ่ในเว็บไซต์นี้ละเมิดมาตรฐานการเข้ารหัสอย่างน้อยหนึ่งมาตรฐาน ... - Comintern 1 ชั่วโมงที่ผ่านมา

สิ่งที่จะส่งออกคำตอบแบบสุ่มจากด้านบน 1000 โหวตจาก codegolf.SE (เช่นการแก้ปัญหาในแบบเมตามาก!) พร้อมการจัดรูปแบบและทั้งหมดในหน้าของคุณ!


น่าเสียดายที่เทคนิคนี้ไม่เป็นไปตามกฎเนื่องจากผลลัพธ์คือรหัสที่มีมาตรฐานที่แตกหักดังนั้นฉันจึงผิดมาตรฐานในรหัสนี้ - ฉันใช้document.write(ewwww) ฉันต้องให้ลิงก์ดังนั้นที่นี่: เหตุใด document.write จึงถือว่าเป็น "การปฏิบัติที่ไม่ดี"

หากไม่ได้นับเป็น "ทำลายมาตรฐาน" ในกรณีผมห่อสตริงของฉันในการunescape(escape())ที่จะเลิกเป็นต่อMDN

โปรดทราบว่าฉันแค่ทำทั้งหมดนี้เพื่อให้ได้กฎและประเด็นหลักของคำตอบนี้คือผลลัพธ์


ตัวอย่างการวิ่ง (คลิกที่ภาพเพื่อขยาย):

screenshot


คุณควรลบvarข้อความเพื่อให้เป็นไปตามมาตรฐานมากขึ้น
Scimonster

6

XML

ไม่ใช่ "การประดิษฐ์" ของฉันจริง ๆ แล้วฉันต้องทำงานกับ XML เช่นนี้ที่เราได้รับจากสถานที่ลับมาก:

<?xml version="1.0"?>
<!DOCTYPE data [
  <!ELEMENT data (field2)>
  <!ELEMENT field2 (#PCDATA)>
]>
<data>
  <field1>Rock & Roll</field1>
</data>
<data>
  <field1>Something else</field1>
</data>

ไม่ตรวจสอบความถูกต้องกับ DTD ที่ฝังตัวของตัวเองประกอบด้วยหลายรากและแอมป์แซนด์ที่ไม่ใช้ค่า Escape (นอกจากนี้ยังมีข้อผิดพลาดในระดับที่สูงขึ้นโมเดลเนื้อหาที่ไม่ชัดเจน ฯลฯ ไม่ได้แสดงไว้ที่นี่) น่าเศร้ามาก


สถานที่ลับมากคืออะไร? ฟังดูเหมือนการเขียนโปรแกรมที่ยอดเยี่ยมเกิดขึ้นที่นั่น! ;)
George

มันเป็นรหัสลับ FBI หรือไม่

อาจเป็นสิ่งที่ชาวฮังการี :)
masterX244

6

อนุญาตให้ตั้งค่า netmask เป็น bitmasks ที่ไม่ต่อเนื่อง แต่ไม่ได้รับอนุญาตอย่างสูงจาก RFC 950 แต่ตอนนี้ถูกห้ามใช้ในฐานะของ RFC 1219 อย่างไรก็ตามการถูกใจ BSD ช่วยให้คุณทำสิ่งนี้ได้

IPv4 netmasks เป็นการรวมกันของสี่ไบต์เช่นเดียวกับที่อยู่ IP มันถูกใช้ในการคำนวณถ้าสองโฮสต์ที่มีที่อยู่ IP ที่รู้จักและ netmasks อยู่ในเครือข่ายเดียวกัน โดยทั่วไปที่อยู่ IP ประกอบด้วยสองส่วนคือเครือข่ายและส่วนโฮสต์ กล่าวว่าเครือข่ายของคุณที่บ้าน-192.168.1.1 192.168.1.254ส่วนโฮสต์เป็นสามไบต์แรกของ IP คือ192.168.1.xคือ ซึ่งหมายความว่า netmask คือ255.255.255.0หมายถึง 24 บิตแรกเป็นส่วนเครือข่าย 11111111.11111111.11111111.00000000ในไบนารีลักษณะเหมือนหน้ากาก 1 บิตมีความต่อเนื่อง ในตัวอย่างของฉัน netmask 00010111.00000000.00000000.00101010จะเป็น แล้วจะเกิดอะไรขึ้นถ้า netmask ไม่ต่อเนื่อง แทนที่จะเป็นที่ที่ถูกต้องส่วนโฮสต์จะกระจัดกระจายไปทั่วที่อยู่ IP ทั้งหมดทำให้ยากต่อการอ่านเช่นเดียวกับคำอธิบายของฉันที่นี่

อย่าคาดหวังว่าจะมีอะไรให้ทำหลังจากนี้!

root@Gotthold /v/root# ifconfig en0 inet 47.11.23.42 netmask 23.0.0.42
root@Gotthold /v/root# ifconfig en0 inet
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 8192
    options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
    inet 47.11.23.42 netmask 0x1700002a broadcast 239.255.255.255

ดี แต่ bitmask ไม่ต่อเนื่องคืออะไร? Google ไม่คืนสิ่งใดที่มีความหมายต่อฉัน (ขออภัย!)
จอร์จ

เพิ่มคำอธิบายบางอย่างซึ่งอาจช่วยได้ฉันไม่ดีในการอธิบายสิ่งต่าง ๆ เกี่ยวกับการสร้างเครือข่าย
Max Ried

1
ฉันได้พบจริง (และต้องแก้ไขโปรแกรมเพื่อไม่อนุญาต) netmasks ที่ไม่ต่อเนื่องบน Windows เนื่องจากผู้ใช้ที่พิมพ์ผิด (225 แทนที่จะเป็น 252)
dan04

6

คุณสามารถค้นหาข้อผิดพลาดได้กี่ข้อซึ่งอาจทำให้ บริษัท ส่วนใหญ่ปฏิเสธรหัสของคุณ ส่วนใหญ่เหล่านี้อาจเป็นความผิดพลาดของสไตล์ (ฉันหวังว่าจะไม่มีใครทำ) แต่สิ่งเหล่านี้บางอย่างเป็นพฤติกรรมที่ไม่ได้กำหนด

    #define BEGIN {
    #define END }
    #define print printf
    void main(int argv, char* argc, char **args) BEGIN
print("hELLO,"); printf("WORLD");
    END

1. กำหนดมาโครที่ทำให้ C รู้สึกเหมือนภาษาอื่น (แนวทางแบบส่วนใหญ่)
2. mainฟังก์ชั่นกลับvoidมาเมื่อมันควรจะกลับมาint(พฤติกรรมที่กำหนดไว้ใช้งาน)
3. mainใช้แบบฟอร์มที่มีอาร์กิวเมนต์สามตัวเมื่อไม่ใช่แบบมาตรฐาน (พฤติกรรมที่ไม่ได้กำหนด)
4. อาร์กิวเมนต์เหล่านั้นมีชื่อไม่ถูกต้อง (แนวทางรูปแบบส่วนใหญ่)
5. argc(ควรargv) มีประเภทที่ไม่ถูกต้อง มันควรจะเป็นchar **แต่มันเป็นchar *(พฤติกรรมที่ไม่ได้กำหนด)
6. การผสมรูปแบบการประกาศ C และ C ++ ซึ่งแตกต่างกันใน*ตำแหน่ง (แนวทาง codelines ส่วนใหญ่ต้องการรหัสที่สอดคล้องกัน)
7. รูปแบบการเข้ารหัสแปลก ๆ ซึ่งโค้ดที่ลึกกว่านั้นไม่ได้ถูก จำกัด (แนวทางการเข้ารหัสส่วนใหญ่)
8. การใช้ฟังก์ชั่น ( printf) โดยไม่ต้องนำเข้าส่วนหัวที่ถูกต้อง (พฤติกรรมที่ไม่ได้กำหนดเนื่องจากเป็นฟังก์ชัน Variadic)
9. การใช้ Caps Lock เพื่อเขียนข้อความ (แนวทางภาษาส่วนใหญ่)
10. ไม่มีช่องว่างหลังเครื่องหมายจุลภาค (แนวทางภาษาส่วนใหญ่)
11. คำสั่งหลายคำสั่งใน
บรรทัดเดียว พิมพ์ที่จุดสิ้นสุดทำให้พรอมต์ที่จะวาดที่ส่วนท้ายของโปรแกรม (พฤติกรรมการดำเนินการที่กำหนดไว้)
14. ค่าตอบแทนไม่ได้ถูกกำหนด (พฤติกรรมการดำเนินการที่กำหนดไว้)


5

ไป

package main

func main() {
    println(whereas "Standards are important")
    println("But sometimes it's fun to break them" despiteallobjections)
}

http://play.golang.org/p/DrDHF9EMgu

คำอธิบายที่นี่ กฎ "ในขณะที่" และ "แม้จะมีคำอธิบายทั้งหมด" จะไม่ปรากฏในสเป็ค แต่ lexer เพียงข้ามพวกเขาเป็นชนิดของไข่อีสเตอร์ ฉันเดาว่าตัวคัดกรองเป็นไปตามมาตรฐานมากกว่าเพราะถ้าคุณคลิก "รูปแบบ" บนลิงก์ Go Playground คุณจะได้รับข้อผิดพลาดในการแยกวิเคราะห์


4

JavaScript

standards:
while(1)
   break standards

คำอธิบาย:

ห่วงในขณะที่ "มาตรฐาน" ออกจากวง

มาตรฐานหัก:

standards: <-- that one
while(1)
   break standards


2

GML ทำลายมาตรฐานมากมาย หนึ่งคือความงามที่ไม่อนุญาตให้ใช้ผู้ประกอบการ Ternary แทนที่จะใช้ผู้ประกอบการ Ternary ใน GML ฉันจะทำสิ่งนี้:

z = ( y * ( z > 0 ) ) + ( x * ( z <= 0 ) );

โดยที่ Ternary เทียบเท่าคือ:

z = ( z > 0 ) ? y : x;

สิ่งแรกค่อนข้างน่ารังเกียจโดยเฉพาะเมื่อคุณเริ่มเพิ่มในการดำเนินการอื่น ๆ


1

Haskell

โปรแกรมของฉันไม่ได้ละเมิดมาตรฐานใด ๆ แต่เพียงเลือกแบบสุ่มเพื่อใช้ มันพยายามที่จะยุติธรรมในมาตรฐานที่แตกต่างกัน นี่คือรหัสของฉัน

import System.Random
import Control.Applicative
newlines=["\n", "\r\n", "\r"]
pick::[a]->IO a
pick lst=fmap (lst !!) $ randomRIO (0, length lst - 1)

fairUnlines::[String]->IO String
fairUnlines []         = pure ""
fairUnlines [str]      = pure str
fairUnlines (str:strs) = (\x y z->x++y++z) <$>
    pure str <*> pick newlines <*> fairUnlines strs

fairUnlinesจะใช้รายการ Strings และเข้าร่วมโดยใช้มาตรฐานอักขระแบบขึ้นบรรทัดใหม่แบบสุ่ม นอกจากนี้ยังเป็นครั้งแรกที่ฉันใช้สไตล์การใช้งานจริงบน IO ไม่มีน้อย


1

ทุบตี

นำมาจากตัวอย่างของคุณ:

ping 192.168.0.1 -c 1 -s 10000

สมมติว่าเราเตอร์ของคุณอยู่ที่ 192.168.0.1

หมายเหตุ: ขนาด ping สูงสุดคือ 65kb ดังนั้นฉันได้ 10 kb แทน 10 mb


คำตอบที่ดี! มีรุ่น Windows ของนี้ (นอกเหนือจาก Cygwin)?
George

@ GeorgeH - ไม่ใช่ที่ฉันรู้
TheDoctor

ตกลง - ไม่ต้องลุกขึ้น Virtualbox อีกครั้ง (มันนานมากแล้ว!)
George

0

ชวา

โอ้ที่รักใครบางคนลืมคนทะเลาะกันอีกครั้ง ...

import java.lang.reflect.*;

class Main {
    public static void main(String[] args) throws Exception {

        // Brian forgot to implement the getter again.
        // He's on vacation, so this will have to do.

        // TODO: figure out what he named the fields
        Field field = UsefulObject.class.getDeclaredFields()[1];
        Field objField = UsefulObject.class.getDeclaredFields()[0];

        field.setAccessible(true);
        objField.setAccessible(true);

        Object obj = objField.get(null);
        String s = (String) field.get(obj);

        System.out.println(s);
    }
}
class UsefulObject {

    private static UsefulObject Useful;
    private String usefulField;

    static {
        Useful = new UsefulObject("useful field");
    }
    private UsefulObject(String s) {
        this.usefulField = s;
    }

    public String getUsefulField() { return usefulField; }

    public static UsefulObject getUsefulObject() {
        throw new UnsupportedOperationException("TODO");
    }
}

Usefulข้อมูลควรจะเป็นตัวพิมพ์เล็ก :useful

ไม่แน่ใจว่านี่เป็นมาตรฐาน: การนำเข้าไวด์การ์ดที่ไม่มีประโยชน์ (ควรเป็นjava.lang.reflect.Fieldเพราะมันคือทั้งหมดที่ใช้)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.