คำถามติดแท็ก methods

เมธอดคือบล็อกของโค้ดที่ทำงานและเชื่อมโยงกับคลาสหรือวัตถุ มันเกี่ยวข้องกับแนวคิดที่ไม่ใช่เชิงวัตถุของฟังก์ชั่นและขั้นตอน

5
ทำไม Mockito ไม่จำลองวิธีการแบบคงที่?
ฉันอ่านหัวข้อเกี่ยวกับวิธีการคงที่ที่นี่และฉันคิดว่าฉันเข้าใจปัญหาการใช้วิธีคงที่ / ผิดวิธีมากเกินไปอาจทำให้เกิด แต่ฉันไม่ได้ไปถึงจุดต่ำสุดว่าทำไมมันจึงยากที่จะเลียนแบบวิธีการคงที่ ฉันรู้กรอบการเยาะเย้ยอื่น ๆ เช่น PowerMock สามารถทำได้ แต่ทำไม Mockito ถึงไม่สามารถทำได้? ฉันอ่านบทความนี้แต่ผู้เขียนดูเหมือนจะต่อต้านคำอย่างเคร่งศาสนาstaticบางทีมันอาจเป็นความเข้าใจที่ไม่ดีของฉัน คำอธิบาย / ลิงค์ง่าย ๆ น่าจะดีมาก
267 java  methods  static  mockito 

9
ความแตกต่างระหว่างวิธีการและฟังก์ชั่นใน Scala
ฉันอ่านฟังก์ชั่นสกาล่า (เป็นส่วนหนึ่งของทัวร์สกาล่าอีกครั้ง ) ในโพสต์ที่เขาระบุว่า: วิธีการและฟังก์ชั่นไม่เหมือนกัน แต่เขาไม่ได้อธิบายอะไรเกี่ยวกับมัน เขากำลังพยายามจะพูดอะไร
254 function  scala  methods 

8
จะแสดงวิธีการทั้งหมดของวัตถุได้อย่างไร
ฉันต้องการทราบวิธีการแสดงรายการวิธีการทั้งหมดที่มีอยู่สำหรับวัตถุเช่น: alert(show_all_methods(Math)); สิ่งนี้ควรพิมพ์: abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random,round, sin, sqrt, tan, …

20
ไม่สามารถอ้างถึงตัวแปรที่ไม่ใช่ครั้งสุดท้ายภายในคลาสภายในที่กำหนดไว้ในวิธีการอื่น
แก้ไข: ฉันจำเป็นต้องเปลี่ยนค่าของตัวแปรหลายตัวในขณะที่พวกเขาทำงานหลายครั้งก่อนที่ตัวจับเวลา ฉันต้องการอัปเดตค่ากับการวนซ้ำทุกครั้งผ่านตัวจับเวลา ฉันไม่สามารถตั้งค่าเป็นค่าสุดท้ายได้ซึ่งจะทำให้ฉันไม่สามารถอัปเดตค่าได้ แต่ฉันได้รับข้อผิดพลาดที่ฉันอธิบายในคำถามเริ่มต้นด้านล่าง: ฉันเคยเขียนสิ่งที่อยู่ด้านล่าง: ฉันได้รับข้อผิดพลาด "ไม่สามารถอ้างถึงตัวแปรที่ไม่ใช่ครั้งสุดท้ายภายในคลาสภายในที่กำหนดในวิธีอื่น" สิ่งนี้เกิดขึ้นสำหรับราคาที่มีการเรียกสองครั้งและราคาที่เรียกว่า priceObject คุณรู้ไหมว่าทำไมฉันถึงได้รับปัญหานี้ ฉันไม่เข้าใจว่าทำไมฉันต้องมีการประกาศขั้นสุดท้าย นอกจากนี้หากคุณสามารถเห็นว่าฉันพยายามทำอะไรฉันต้องทำอะไรเพื่อแก้ไขปัญหานี้ public static void main(String args[]) { int period = 2000; int delay = 2000; double lastPrice = 0; Price priceObject = new Price(); double price = 0; Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { public void …


21
วิธีการช่วยเหลือส่วนตัวควรจะคงที่หากพวกเขาสามารถคงที่
สมมติว่าฉันมีคลาสที่ออกแบบมาให้เป็นอินสแตนซ์ ฉันมีวิธีการ "ผู้ช่วย" ส่วนตัวหลายอย่างในชั้นเรียนที่ไม่ต้องการการเข้าถึงสมาชิกของชั้นเรียนใด ๆ และดำเนินการกับข้อโต้แย้งของพวกเขา แต่เพียงผู้เดียวและส่งกลับผลลัพธ์ public class Example { private Something member; public double compute() { double total = 0; total += computeOne(member); total += computeMore(member); return total; } private double computeOne(Something arg) { ... } private double computeMore(Something arg) {... } } มีเหตุผลใดที่ต้องระบุcomputeOneและใช้computeMoreเป็นวิธีการคงที่ - หรือเหตุผลเฉพาะใด ๆ ที่จะไม่ทำ? …

9
ทำไมรหัสไพ ธ อนจึงใช้ฟังก์ชัน len () แทนที่จะเป็นวิธีความยาว
ฉันรู้ว่าหลามมีlen()ฟังก์ชั่นที่ใช้ในการกำหนดขนาดของสตริง แต่ฉันสงสัยว่าทำไมมันไม่ได้เป็นวิธีการของวัตถุสตริง ปรับปรุง ตกลงฉันรู้ว่าฉันผิดพลาดอย่างน่าอาย __len__()จริง ๆ แล้วเป็นวิธีการของวัตถุสตริง ดูเหมือนว่าแปลกที่จะเห็นโค้ดเชิงวัตถุใน Python โดยใช้ฟังก์ชัน len บนวัตถุสตริง นอกจากนี้ยังเป็นเรื่องแปลกที่จะเห็น__len__ว่าเป็นชื่อแทนที่จะเป็นเพียง len

3
X ไม่ได้ใช้ Y (…วิธีมีตัวรับสัญญาณตัวชี้) [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ มีคำถาม & คำตอบอยู่มากมายในเรื่อง " X ไม่ได้ใช้วิธี Y (... มีตัวรับสัญญาณตัวชี้) " แต่สำหรับฉันพวกเขาดูเหมือนจะพูดถึงสิ่งต่าง ๆ และไม่ได้ใช้กับกรณีเฉพาะของฉัน ดังนั้นแทนที่จะทำคำถามที่เฉพาะเจาะจงฉันทำให้มันกว้างและเป็นนามธรรม - ดูเหมือนว่ามีหลายกรณีที่สามารถทำให้เกิดข้อผิดพลาดนี้ได้ใครบางคนสรุปได้ไหม เช่นวิธีการหลีกเลี่ยงปัญหาและถ้ามันเกิดขึ้นสิ่งที่เป็นไปได้คืออะไร? ขอบคุณ.

9
Reflection: วิธีเรียกใช้เมธอดด้วยพารามิเตอร์
ฉันพยายามเรียกใช้วิธีการผ่านการสะท้อนกับพารามิเตอร์และฉันได้รับ: วัตถุไม่ตรงกับประเภทเป้าหมาย ถ้าฉันเรียกใช้เมธอดที่ไม่มีพารามิเตอร์จะทำงานได้ดี ขึ้นอยู่กับรหัสต่อไปนี้ถ้าฉันเรียกวิธีการTest("TestNoParameters")ทำงานได้ดี อย่างไรก็ตามถ้าฉันโทรTest("Run")ฉันจะได้รับการยกเว้น มีบางอย่างผิดปกติกับรหัสของฉันหรือไม่ จุดประสงค์เริ่มต้นของฉันคือการส่งอาร์เรย์ของวัตถุเช่นpublic void Run(object[] options)แต่สิ่งนี้ไม่ได้ผลและฉันพยายามทำสิ่งที่ง่ายกว่าเช่นสตริงที่ไม่ประสบความสำเร็จ // Assembly1.dll namespace TestAssembly { public class Main { public void Run(string parameters) { // Do something... } public void TestNoParameters() { // Do something... } } } // Executing Assembly.exe public class TestReflection { public void Test(string methodName) { …

9
ทำไมคุณต้องมีอาร์กิวเมนต์“ ตัวตน” อย่างชัดเจนในเมธอด Python?
เมื่อกำหนดวิธีการในชั้นเรียนใน Python มันมีลักษณะดังนี้: class MyClass(object): def __init__(self, x, y): self.x = x self.y = y แต่ในบางภาษาอื่น ๆ เช่น C # คุณมีการอ้างอิงถึงวัตถุที่วิธีการที่ถูกผูกไว้กับคำหลัก "นี้" โดยไม่ต้องประกาศว่ามันเป็นข้อโต้แย้งในต้นแบบวิธีการ นี่เป็นการตัดสินใจออกแบบภาษาโดยเจตนาใน Python หรือมีรายละเอียดการนำไปปฏิบัติบางอย่างที่ต้องใช้การผ่าน "ตนเอง" เป็นอาร์กิวเมนต์หรือไม่?
197 python  oop  methods  self 

5
อาร์กิวเมนต์สุดท้ายในวิธีการเชื่อมต่อ - ประเด็นคืออะไร?
ใน Java การกำหนดfinalอาร์กิวเมนต์ในเมธอดอินเทอร์เฟซนั้นถูกกฎหมายอย่างสมบูรณ์และไม่ปฏิบัติตามในคลาสการนำไปใช้งานเช่น: public interface Foo { public void foo(int bar, final int baz); } public class FooImpl implements Foo { @Override public void foo(final int bar, int baz) { ... } } ในตัวอย่างข้างต้นbarและbazมีfinalคำจำกัดความที่ตรงกันข้ามในคลาส VS อินเทอร์เฟซ ในทำนองเดียวกันไม่มีการfinalบังคับใช้ข้อ จำกัด ใด ๆ เมื่อเมธอดคลาสหนึ่งขยายอีกวิธีหนึ่งabstractหรือไม่ก็ได้ ในขณะที่finalมีค่าที่ใช้งานได้จริงบางส่วนในตัวเมธอดคลาสมีจุดใดบ้างที่ระบุfinalสำหรับพารามิเตอร์วิธีการอินเทอร์เฟซ?
192 java  class  interface  methods  final 

10
ฉันสามารถเรียกใช้วิธีการแบบอินสแตนซ์บนโมดูล Ruby โดยไม่รวมมันได้หรือไม่
พื้นหลัง: ฉันมีโมดูลที่ประกาศจำนวนวิธีการอินสแตนซ์ module UsefulThings def get_file; ... def delete_file; ... def format_text(x); ... end และฉันต้องการเรียกวิธีการเหล่านี้บางอย่างจากภายในชั้นเรียน ปกติคุณทำเช่นนี้ในทับทิมเป็นเช่นนี้: class UsefulWorker include UsefulThings def do_work format_text("abc") ... end end ปัญหา include UsefulThingsนำในทุกUsefulThingsวิธีการจาก ในกรณีนี้ผมเพียงต้องการformat_textและชัดเจนไม่ต้องการและget_filedelete_file ฉันสามารถดูวิธีแก้ปัญหาที่เป็นไปได้หลายประการดังนี้: อย่างใดเรียกวิธีการโดยตรงในโมดูลโดยไม่รวมที่ใดก็ได้ ฉันไม่ทราบว่าสามารถทำได้หรือไม่ (ดังนั้นคำถามนี้) อย่างใดรวมถึงUsefulthingsและนำวิธีการบางอย่างเท่านั้น ฉันก็ไม่รู้เหมือนกันว่าจะทำสิ่งนี้ได้อย่างไร สร้างคลาสพร็อกซีรวมUsefulThingsไว้ในนั้นจากนั้นมอบสิทธิ์format_textให้อินสแตนซ์ของพร็อกซีนั้น สิ่งนี้จะได้ผล แต่คลาสพร็อกซีที่ไม่ระบุชื่อเป็นแฮ็ก yuck แบ่งโมดูลออกเป็น 2 โมดูลหรือเล็กกว่า สิ่งนี้จะได้ผลและอาจเป็นทางออกที่ดีที่สุดที่ฉันสามารถนึกได้ แต่ฉันต้องการหลีกเลี่ยงเพราะฉันต้องจบด้วยโมดูลที่เพิ่มจำนวนมากขึ้นเรื่อย ๆ - การจัดการสิ่งนี้จะเป็นภาระ ทำไมมีฟังก์ชั่นที่ไม่เกี่ยวข้องจำนวนมากในโมดูลเดียว? มันApplicationHelperมาจากแอพพลิเคชั่นรางซึ่งทีมงานของเราได้ตัดสินใจยกเลิกการทุ่มตลาดสำหรับสิ่งที่ไม่เฉพาะเจาะจงมากพอที่จะอยู่ที่อื่น …
181 ruby  module  methods 

6
ฉันจะส่งผ่านพารามิเตอร์หลายตัวใน Objective-C ได้อย่างไร
ฉันได้อ่านหลายโพสต์เกี่ยวกับไวยากรณ์ของวิธีการ Objective-C แต่ฉันเดาว่าฉันไม่เข้าใจชื่อหลายวิธี ฉันพยายามที่จะสร้างวิธีการที่เรียกว่าgetBusStopsมีNSStringและค่าพารามิเตอร์และประเภทการกลับมาของNSTimeInterval NSMutableArrayนี่คือวิธีที่ฉันสร้างวิธี แต่เห็นได้ชัดว่าได้รับข้อผิดพลาดที่ runtime: - (NSMutableArray *)getBusStops:(NSString *)busStop (NSTimeInterval *)timeInterval; ฉันเห็นอีกตัวอย่างหนึ่งด้วยวิธีการ: -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component ฉันไม่เข้าใจว่าทำไมวิธีนี้จึงมีชื่อวิธีสำหรับแต่ละพารามิเตอร์ ฉันควรทำสิ่งเดียวกันกับสิ่งที่ชอบหรือไม่: - (NSMutableArray *)getBusStops:(NSString *)busStop forTime:(NSTimeInterval *)timeInterval


9
"วิธีการคงที่" ใน C # คืออะไร
หมายความว่าอย่างไรเมื่อคุณเพิ่มคำหลักแบบคงที่ให้กับวิธีการ public static void doSomething(){ //Well, do something! } คุณสามารถเพิ่มstaticคำหลักลงในคลาสได้หรือไม่ ถ้าเช่นนั้นจะหมายความว่าอย่างไร
177 c#  methods  static 

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