Метод getFont()

#java #awt

#java #awt

Вопрос:

Я просто хотел задать вопрос о методе getFont(), который находится в java.awt.Font. Я не понимаю, почему getStyle() не определен для типа string , хотя на самом деле он должен работать со строками. В API говорится, что он принимает целое число в качестве аргумента.

     import java.awt.Font;
//import java.util.*;
public class NotEqual 

{
    public static void main(String[] args)
    {
    //Scanner input = new Scanner(System.in);
    //System.out.println("Write something ");
    String sentence  = "The sentence";
    //int x = 2;
    //System.out.println(sentence.getFont());
    //System.out.println(sentence.getSize());
    //System.out.println(sentence.getStyle());
    System.out.println(sentence.getFont());

    }
}
  

Комментарии:

1. Это не имеет смысла. Вы вызываете getStyle не для int или строки, а только для шрифта. Как указано в API, он возвращает значение int . Что именно вы имеете в виду под «это действительно должно работать со строками». И в моем API указано, что этот метод не принимает аргументов. Пожалуйста, проясните свой вопрос для меня.

2.Ваш вопрос очень неясен. Зачем вообще getStyle() принимать какие-либо аргументы? И какое это имеет отношение к getFont() методу? Как вы думаете, почему стили «должны» работать со строками?

3. Похоже, что этот вопрос многих из нас сбивает с толку.

4. @AndrewThompson: Я думаю, что отрицательный ответ имеет смысл — это действительно плохо заданный вопрос. «Этот вопрос не показывает каких-либо исследовательских усилий; это неясно или бесполезно» — звучит довольно правильно для меня…

5. Если он найдет время, чтобы прояснить вопрос, скорее всего, голосование «против» исчезнет и, вероятно, будет заменено голосами «против». До сих пор мы ничего не слышали от оригинального плаката.

Ответ №1:

Стиль — это целое число, определяемое шрифтом constants .ОБЫЧНЫЙ, шрифт.ЖИРНЫЙ шрифт или шрифт.КУРСИВ.

Из документации:

Возвращает стиль этого шрифта. Стиль может быть ПРОСТЫМ, ЖИРНЫМ, КУРСИВНЫМ или ЖИРНЫМ КУРСИВНЫМ.

Это никогда не строка. Строка не является одним из принятых значений. (Этого никогда не было.)

Ответ №2:

Ваш код не будет работать, потому что строки не имеют шрифтов. Точка. Все они представляют собой списки символов с поддерживающими методами и свойствами, но без шрифта. Чтобы увидеть, какие методы вы можете вызывать для String, посмотрите на API, поскольку это окончательный арбитр того, что вы можете и не можете с ними делать. Фактически, если вы выполните поиск по тексту String API, вы даже не найдете нигде слово «шрифт».

Я все еще не понимаю часть об этом «В API говорится, что он принимает целое число в качестве аргумента».

Ответ №3:

Одной из причин может быть то, что int возвращаемое значение легче интерпретировать, чем либо BOLD ITALIC или ITALIC BOLD (тот же стиль, тот же int , другой String ).


Отмечая также, что аргументы могут быть перегружены, но возвращаемые типы не могут, можно утверждать, что int это лучшее значение для возврата.