2015-03-19 4 views
1

Я ВГ создал файл с именем банки CustomValidations.jar, который включает в себя один файл с именем класса CustomValidation.javaСоздайте файл JAR в JA

package validation; 
    public class CustomValidation { 
    public boolean matchFields(String str1,String str2){ 
      if (!str1.equals(str2)) { 
      return false; 
      } 
     else { 
      return true; 
     } 
    } 
    } 

я создал еще один простой проект Java, и мне нужно вызвать метод MatchFields

package com.codes; 
    import CustomValidation.*; 
    public class TestClass { 
     public boolean CheckEmail(){ 
     if(matchFields("sowmya","sowmya")){ 
      System.out.println("Matched"); 
     } 
     else { 
      System.out.println("Not Matched"); 
     } 
     } 
    } 

Он бросает мне ошибку заявив: «CustomValidation импорт не может быть решена» Что такое правильный способ вызова метода?

+0

Вы должны добавить этот проект в зависимости от проекта, в котором вы используете этот код .. –

+0

'matchFields' не статично, вам нужен экземпляр' CustomValidation' перед вами может использовать его ... – MadProgrammer

+0

Я добавил этот файл jar в BuildPath .. Есть ли что-то еще необходимое –

ответ

0

matchFields не является статическим, вам понадобится экземпляр CustomValidation, прежде чем вы сможете его использовать. Важное заявление немного неправильно, а также, как правило, это import {package path}.{class name} или в случае import validation.CustomValidation (или даже import validation.*)

import validation.CustomValidation; 

public class TestClass { 
    public boolean CheckEmail(){ 
     CustomValidation customValidation = new CustomValidation(); 
     if(customValidation.matchFields("sowmya","sowmya")){ 
      System.out.println("Matched"); 
     } 
     else { 
      System.out.println("Not Matched"); 
     } 
    } 
} 

Вы могли бы сделать метод static

public class CustomValidation { 
    public static boolean matchFields(String str1,String str2){ 
     if (!str1.equals(str2)) { 
      return false; 
     } 
     else { 
      return true; 
     } 
    } 
} 

А затем сделать static импорт

import static validation.CustomValidation.matchFields; 

public class TestClass { 
    public boolean CheckEmail(){ 
     if(matchFields("sowmya","sowmya")){ 
      System.out.println("Matched"); 
     } 
     else { 
      System.out.println("Not Matched"); 
     } 
    } 
} 

Это все предполагает, что файл jar, содержащий CustomValidation, является модели шириной в пути к классам, когда TestClass построен и запустить

+0

Я попытался с вышеупомянутыми изменениями Bt все еще получаю ошибку нескольких маркеров на этой линии \t - Проверка импорта не может быть решена \t - The validation.CustomValidation импорт не может быть \t решен ....... Метод MatchFields (String, String) не определено для типа TestClass –

+1

Похоже, что Jar либо не содержит класс, либо вы не включили jar в путь класса для проекта. Попробуйте извлечь содержимое файла Jar и убедитесь, что он содержит класс, который вы ожидаете в каталогах, представленных объявлениями пакета классов. – MadProgrammer

+0

God ... Я пропустил включение опции «Экспорт сгенерированных файлов классов и ресурсов» при создании файла jar ... Он отлично работает .................. Спасибо вы @ MadProgrammer –

1

Ваш импорт был неправильно

вместо

import CustomValidation.*; 

должно быть

import validation.*; 

, а также метод не является статическим, чтобы вы необходимо создать экземпляр для доступа к этому методу. как:

new CustomValidation().matchFields("sowmya","sowmya"); 
Смежные вопросы