Несоответствие типов: невозможно преобразовать из J48 в классификатор - PullRequest
0 голосов
/ 08 января 2019

Я новичок в Weka. И я хочу использовать модель самообучения Weka. Я импортировал weka.jar, когда создал проект. Но я хочу знать, как решить эту проблему? Заранее благодарю за помощь.

enter image description here

import java.io.File;

import weka.classifiers.Classifier;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.core.converters.ArffLoader;

public class J48 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Classifier m_classifier = new J48();

1 Ответ

0 голосов
/ 09 января 2019

Вы создали новый класс с именем J48, который не наследует базовый класс и не реализует интерфейс, поэтому сообщение об ошибке корректно:

Невозможно преобразовать из J48 в классификатор

Возможно, вы хотели создать экземпляр классификатора J48 Уэки. Вы можете сделать это, используя его полное имя:

Classifier m_classifier = new weka.classifiers.trees.J48();

(См. Также: Java: оператор импорта против полностью определенного имени? )

Но вы, как правило, должны избегать этих конфликтов имен и переименовывать свой класс в нечто иное, например ::

public class J48Demo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Classifier m_classifier = new J48();

Вы уже импортировали правильный пакет, поэтому, разрешив конфликт имен путем переименования вашего класса, new J48() будет ссылаться на правильный класс.

...